set browser scroll position on navigation in Static Rendering

This commit is contained in:
sbwalker 2024-05-17 13:01:03 -04:00
parent 81adb80b7e
commit 0ba94f3bc9
2 changed files with 26 additions and 13 deletions

View File

@ -69,20 +69,15 @@
<Routes PageState="@_pageState" RenderMode="@_renderMode" Runtime="@_runtime" AntiForgeryToken="@_antiForgeryToken" AuthorizationToken="@_authorizationToken" Platform="@_platform" @rendermode="InteractiveRenderMode.GetInteractiveRenderMode(_runtime, _prerender)" /> <Routes PageState="@_pageState" RenderMode="@_renderMode" Runtime="@_runtime" AntiForgeryToken="@_antiForgeryToken" AuthorizationToken="@_authorizationToken" Platform="@_platform" @rendermode="InteractiveRenderMode.GetInteractiveRenderMode(_runtime, _prerender)" />
} }
@if (!string.IsNullOrEmpty(_reconnectScript)) <script src="_framework/blazor.web.js"></script>
{
@((MarkupString)_reconnectScript)
}
@if (!string.IsNullOrEmpty(_PWAScript))
{
@((MarkupString)_PWAScript)
}
@((MarkupString)_bodyResources)
<script src="js/app.js"></script> <script src="js/app.js"></script>
<script src="js/loadjs.min.js"></script> <script src="js/loadjs.min.js"></script>
<script src="js/interop.js"></script> <script src="js/interop.js"></script>
<script src="_framework/blazor.web.js"></script>
@((MarkupString)_reconnectScript)
@((MarkupString)_PWAScript)
@((MarkupString)_scrollPositionScript)
@((MarkupString)_bodyResources)
} }
else else
{ {
@ -106,8 +101,9 @@
private string _headResources = ""; private string _headResources = "";
private string _bodyResources = ""; private string _bodyResources = "";
private string _styleSheets = ""; private string _styleSheets = "";
private string _PWAScript = ""; private string _reconnectScript = ""; // for Interactive render mode and Blazor Server interactivity only
private string _reconnectScript = ""; private string _PWAScript = ""; // for PWA apps only
private string _scrollPositionScript = ""; // for Static render mode only
private string _message = ""; private string _message = "";
private PageState _pageState; private PageState _pageState;
@ -189,6 +185,11 @@
{ {
_PWAScript = CreatePWAScript(alias, site, route); _PWAScript = CreatePWAScript(alias, site, route);
} }
@if (_renderMode == RenderModes.Static)
{
_scrollPositionScript = "<page-script src=\"/js/scrollposition.js\"></page-script>";
}
_headResources += ParseScripts(site.HeadContent); _headResources += ParseScripts(site.HeadContent);
_bodyResources += ParseScripts(site.BodyContent); _bodyResources += ParseScripts(site.BodyContent);

View File

@ -0,0 +1,12 @@
function setScrollPosition() {
window.scrollTo({
top: 0,
left: 0,
behavior: 'instant'
});
}
export function onUpdate() {
setScrollPosition();
}