我想仅在关闭标签/窗口上显示警告。
现在我已经做了如下所示的事情,但即使在浏览器的后退按钮上也会触发...... 但我只想在标签/窗口关闭。
我在这方面做了很多尝试,并检查了很多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;
});
});
所以请帮帮我。
答案 0 :(得分:1)
出于安全原因,这不是或不应该是可能的。为了确定地知道用户何时以及如何与用户代理(浏览器)交互,您(应该)必须能够访问浏览器的更高安全性上下文。应该专门阻止页面脚本进行此访问。
您将了解何时将卸载页面(onbeforeunload
和onunload
事件),但不知道页面被卸载的明确原因。
请注意,您可以并且应该通过window.addEventListener()
和beforeunload
事件来处理此事件。使用window.onbeforeunload
和window.onunload
代替window.addEventListener()
更具限制性,不允许与可能加载的其他脚本共享事件,也不允许仅删除自己的事件处理程序。您应该养成使用window.addEventListener()
和命名函数的习惯,以便在您不仅限于在页面上运行自己的脚本的环境中良好地运行。