如何禁用角度中弹出的“离开站点?。您所做的更改可能不会保存”?

Par*_*roo 12 javascript onbeforeunload dom-events angular

我试图在到达订单确认页面后关闭浏览器,它会发出如下所示的警报。这会给用户造成误解,认为他的更改尚未保存。所以我想避免这个弹出窗口。

在此输入图像描述

我知道此警报是由于beforeunload事件而触发的。我尝试过的解决方案:

window.addEventListener("beforeunload",(event)=>{
    return null;
})
Run Code Online (Sandbox Code Playgroud)

 window.onbeforeunload=null;
Run Code Online (Sandbox Code Playgroud)

我没有在我的应用程序中使用 jQuery。有没有其他方法可以禁用此事件的触发。

我尝试过的链接:

如何禁用/覆盖“您想离开此网站吗?” 警报?

禁用“您所做的更改可能无法保存”弹出窗口

如何禁用“您所做的更改可能不会保存”。对话框(Chrome)?

他们都不为我工作。

如果没有 jQuery,我怎样才能实现这个目标?我感到困惑的是如何处理这个事件,以便它不显示弹出窗口。

我使用的是 Chrome 版本 101.0.4951.64

小智 18

这可能是由于代码中的某些第三方库或其他功能侦听“beforeunload”事件并可能修改 的值event.returnValue

此解决方法可能适合您。

window.addEventListener('beforeunload', function (event) {
  event.stopImmediatePropagation();
});
Run Code Online (Sandbox Code Playgroud)

这将阻止链中其他侦听器的执行。

将此代码包含在应用程序的顶部非常重要,以确保首先执行您的函数。

对于 Angular,AppComponent 的 ngOnInit 是一个好地方。

检查这里。