滚动单击不适用于 NavigationManager.NavigateTo,我无法使用 href,因为我需要 forceLoad 功能

sio*_*orn 7 html c# asp.net-core blazor

我有一个 Blazor 服务器 Web 应用程序;.NET 5。

我遇到了与在我的 Web 应用程序中的页面之间导航相关的挫折:

  • 当我使用 时NavigationManager.NavigateTo(uri, true),我无法使用我的滚动点击打开链接(如果我要使用,它将在新的浏览器选项卡中打开链接href="uri")。它会打开一个新选项卡,但加载的页面与我已经在相同的页面上。
  • 当我href="uri"改为使用时,滚动单击有效。但是,它引入了一个新问题:通过“正常”左键单击,新页面加载但保留了移动浏览器中上一页的滚动位置(我已经使用移动 Safari 以及 Chrome 中的移动模拟器进行了测试)。

我需要能够滚动点击进入一个新选项卡,以及在不保留上一页滚动位置的情况下加载新页面。有小费吗?

Phi*_*Ape 1

假设您正在使用该onclick事件: 该onclick事件不侦听滚轮单击。要解决此问题,只需使用onmousedown事件即可:

<button class="btn btn-dark" @onmousedown="OnClick">Test</button>

@code {

    private void OnClick()
    {
        NavigationManager.NavigateTo("/counter", true);
    }

}
Run Code Online (Sandbox Code Playgroud)