gpt4 book ai didi

javascript - Chrome 和 Firefox 的 onbeforeunload 问题

转载 作者:行者123 更新时间:2023-11-30 17:28:22 25 4
gpt4 key购买 nike

最近几天,我注意到我应该在离开我的网站页面之前看到的确认警报在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com