Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

Blazor JS Interop // javascript window events and functions not working

$
0
0

In a Blazor MAUI Hybrid app, I am trying to save the scroll position per page so that if returning to the page the saved scroll position is then reapplied.

I know that I should be saving it in session storage and per page, but I'm struggling to get the basic functionality to work.

One thing I tried throws the following exception:

Microsoft.JSInterop.JSException: window.scrollTop is not a functionTypeError: window.scrollTop is not a function
@inject NavigationManager NavManager...<script>    function saveScrollPosition() {        var scrollPosition = window.scrollTop();        localStorage.setItem("scrollPosition", scrollPosition);    }    function restoreScrollPosition() {        if (localStorage.scrollPosition) {            var scrollPosition = localStorage.getItem("scrollPosition");            window.scrollTop(scrollPosition);        }    }</script>...@code{    protected override async Task OnInitializedAsync()    {        NavManager.LocationChanged += OnLocationChanged;    }    private async void OnLocationChanged(object sender, LocationChangedEventArgs e)    {        await JsRuntime.InvokeVoidAsync("saveScrollPosition");    }}

And my previous attempt to register it at onbeforeunload and onload never fires.

<script>    window.onbeforeunload = function() {        var scrollPosition = window.scrollTop();        localStorage.setItem("scrollPosition", scrollPosition);    }</script>

Does anyone have a pointer to what I'm missing? Basic window functions and events appear not to be working at all.


Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>