相关疑难解决方法(0)

在离开具有未保存更改的网页之前警告用户

我的应用程序中有一些表单.

如何以这样的方式保护表单:如果有人导航或关闭浏览器选项卡,应提示他们确认他们确实要保留未保存数据的表单?

javascript forms

314
推荐指数
8
解决办法
23万
查看次数

Blazor Navigationmanager 取消位置导航已更改

题:

Blazor 有没有办法取消导航?

让我们假设一个a href像这样的 siple :

<a href="/some/other/blazor/spa/page">Go</a>
Run Code Online (Sandbox Code Playgroud)

我想取消导航(例如,如果我们正在编辑表单)

我尝试过的。

通过JS

onbeforeunload通过 JSInterop设置了dom 委托:

window.onbeforeunload = function(){
        return 'Vols abandonar aquesta pàgina?';
      };
Run Code Online (Sandbox Code Playgroud)

但 blazor 绕过它。

通过位置已更改

我尝试拦截locationchanged事件导航失败:

@implements IDisposable
@inject NavigationManager NavigationManager

...

protected override void OnInitialized()
{
    NavigationManager.LocationChanged += HandleLocationChanged;
}

private void HandleLocationChanged(object sender, LocationChangedEventArgs e)
{
    // Cancel Navigation Here
}

public void Dispose()
{
    NavigationManager.LocationChanged -= HandleLocationChanged;
}
Run Code Online (Sandbox Code Playgroud)

c# navigation .net-core blazor blazor-webassembly

6
推荐指数
2
解决办法
1423
查看次数