前端页面关闭事件 beforeunload
页面加载时只执行onload
页面关闭时先执行onbeforeunload,最后onunload
页面刷新时先执行onbeforeunload,然后onunload,最后onload。
beforeunload
// js
window.onbeforeunload = function(){
console.log("onbeforeunload");
return "提示语";
}
// jq
$(window).on("beforeunload",function(){
console.log("beforeunload");
return 123123;
})
unload
// js
window.onunload = function(){
console.log("onunload");
}
// jq
$(window).on("unload",function(){
console.log("unload");
})
- 在当页面关闭或刷新时调用
在当前标签页打开新页面 调用
在新标签页打开新页面 不调用 - 询问框提示语不可自定义 好像是之前出现过漏洞 诈骗之类的
所以自定义无效 只能使用默认 - return 是为了弹出询问框
弹出询问框
需要页面有互动 方法才有效
页面打开直接刷新或者关闭不会触发 询问框
return 之前的方法不受影响 依然可以调用
因为页面关闭速度过快
做测试的话 可以使用这个方法 放在console.log 后面做测试
// 睡眠
function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}