最近几天,我注意到我应该在离开我的网站页面之前看到的确认警报在 Chrome 和 Firefox 上不再显示,但在 IE 上显示。 如果我使用 Google Chrome Dev Tools 进行调试,我可以看到函数 confirm 被执行,进入 if 语句,但没有显示警告框。我尝试重新启动 Google Chrome 并寻找重置警报消息的选项,但我什么也没找到。 有什么想法吗?
代码是这样的:
if (window.addEventListener) {
window.addEventListener('beforeunload', confirm, false);
}
else window.attachEvent("onbeforeunload", confirm);
...
function confirm(e) {
if (changed== true) {
return "You haven't saved your changes!";
}
}
最佳答案
我找到了一个可行的解决方案,但实际上我不明白为什么 attachEvent 不再起作用。无论如何,这是在 IE、Chrome 和 Firefox 上测试过的工作解决方案:
我删除了 addEventListener 和 attachEvent 行:
/* if (window.addEventListener) {
window.addEventListener('beforeunload', confirm, false);
}
else window.attachEvent("onbeforeunload", confirm); */
在 HTML 中,我将 onbeforeunload 属性添加到 body 标记中:
<body onbeforeunload="return confirmEvent()">
我还重命名了 onbeforeunload 函数以避免与 confirm 内置 javascript 函数混淆:
function confirmEvent(e) {
if (changed== true) {
return "You haven't saved your changes!";
}
}
关于javascript - Chrome 和 Firefox 的 onbeforeunload 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23741675/