gpt4 book ai didi

javascript - 仅在关闭选项卡/窗口时触发页面卸载事件

转载 作者:行者123 更新时间:2023-11-29 15:37:29 28 4
gpt4 key购买 nike

我只想在关闭的标签页/窗口上显示警报。

现在我做了如下所示的事情,但它甚至在“F5”、浏览器的后退按钮上也会触发...但我只想在选项卡/窗口关闭时使用它。

我在这方面做了很多尝试,也检查了很多 stackoverflow 链接,但没有得到任何解决方案

window.onbeforeunload = function(e) {
return confirmExit()
}
function confirmExit() {
//my logic
return false;
}

还添加了以下代码以防止单击我网站中的任何链接时出现 onbeforeunload

$(document).ready(function() {
$('a[rel!=ext]').click(function() {
window.onbeforeunload = null;
});
$('form').submit(function() {
window.onbeforeunload = null;
});
});

所以请帮帮我。

最佳答案

出于安全原因,这是不可能的,也不应该是可能的。为了确定性地知道用户何时以及如何与用户代理(浏览器)交互,您(应该)必须能够访问浏览器的更高安全上下文。应该特别阻止页面脚本获得此访问权限。

您知道页面何时将被卸载(onbeforeunloadonunload 事件)但不知道页面被卸载的明确原因。

请注意,您可以而且应该通过 window.addEventListener()beforeunload 事件来处理此事件。使用 window.onbeforeunloadwindow.onunload 而不是 window.addEventListener() 限制更多,并且不允许与其他脚本共享事件可能会加载,也不会只删除您自己的事件处理程序。您应该养成使用 window.addEventListener() 和命名函数的习惯,以便在您不限于仅在页面上运行自己的脚本的环境中发挥良好作用。

关于javascript - 仅在关闭选项卡/窗口时触发页面卸载事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25994451/

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