我试图在到达订单确认页面后关闭浏览器,它会抛出如下所示的警告。这会让用户误以为他的更改未保存。所以我想避免这个弹出窗口。
我知道此警报是由于 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 中。
关于javascript - 如何禁用 "Leave site?. Changes you made may not be saved"以 Angular 弹出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72224869/