javascript - 如何禁用 "Leave site?. Changes you made may not be saved"以 Angular 弹出?

标签 javascript angular dom-events onbeforeunload

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

enter image description here

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

window.addEventListener("beforeunload",(event)=>{
    return null;
})

 window.onbeforeunload=null;

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

我试过的链接:

How to disable/override "Do you want to leave this site?" alert?

Disable "Changes you made may not be saved" pop-up window

How to disable "Changes you made may not be saved." dialog box (Chrome)?

他们都不适合我。

如果没有 jQuery,我如何实现这一点?我感到困惑的是如何处理此事件以使其不显示弹出窗口。

我使用的是 Chrome 版本 101.0.4951.64

最佳答案

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

此解决方法可能适合您。

window.addEventListener('beforeunload', function (event) {
  event.stopImmediatePropagation();
});

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

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

对于 Angular,一个好的位置可以在 AppComponent 的 ngOnInit 中。

Check here.

关于javascript - 如何禁用 "Leave site?. Changes you made may not be saved"以 Angular 弹出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72224869/

相关文章:

javascript - 如何通过 [ngClass] 清除或删除 Angular 6 中的类

javascript - NativeScript Android Build 抛出错误 : Command gradlew. bat 失败,退出代码 1

javascript - ES6 原生 Promise from Factory 函数

javascript - 根据标准,禁用链接应该设置什么颜色?

javascript - 在对象为 bool 值的情况下,Javascript 中的类型强制如何进行?

javascript - HTML 按钮单击更改行的背景颜色

node.js - 当 VsCode 中没有检测到 "problems"时,这些 AngularCli 错误意味着什么?

javascript - onclick 不调用函数

javascript - 即使遵循 Google 的开发人员教程,Google Analytics 事件也无法正常工作

javascript - 在仅限客户端的 Web 应用程序上保存和加载文件的正确方法是什么?