根据我的正确理解,当用户关闭选项卡或单击链接,甚至更新页面时,“ beforeunload”然后触发“ unload”事件。首先,我无法注册事件处理程序(某些代码段不起作用):
在MDN web docs示例中,我写了以下内容:
Panel
它不起作用(我希望对话框出现)
我也尝试过:
window.addEventListener("beforeunload", function (event) {
event.preventDefault();
event.returnValue("Are you sure?");
});
而且效果不佳
我从w3school docs写到:
window.addEventListener("beforeunload", function (event) {
return "Are you sure?";
});
就可以了!但是为什么以前的方法不起作用?
如何在浏览器或标签关闭时触发?当用户关闭标签或浏览器时是否可以“执行某些操作”?更清楚地说,我想删除一些Cookie,这些Cookie会在用户关闭标签页或浏览器时引用其当前会话。还是我需要做这样的事情?
window.onbeforeunload = function () {
return "Are you sure?";
}
这是我编写的完整演示代码:
window._link_was_clicked = false;
window.onbeforeunload = function(event) {
if (window._link_was_clicked) {
return; // abort beforeunload
}
// your event handling
};
jQuery(document).on('click', 'a', function(event) {
window._link_was_clicked = true;
});