前端页面关闭事件 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");
})
  1. 在当页面关闭或刷新时调用
    在当前标签页打开新页面 调用
    在新标签页打开新页面 不调用
  2. 询问框提示语不可自定义 好像是之前出现过漏洞 诈骗之类的
    所以自定义无效 只能使用默认
  3. 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;
	}
}
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐