巨坑!监听浏览器窗口关闭onbeforeunload不起作用(脱坑了啊!!)
·
————————————————重要通知——————————————
Hello,本人的博客文章已更新至个人网站(www.jonexu.cn)
文章中有问题可以到网站联系博主,后续新的文章也将更新在个人网站
——————————————————————————————————
因业务需要,特写方法监听浏览器关闭,然后去do something
先声明我没在忽悠,看完能实现这个需求的!!
网上大部分推荐方法如下:
window.onbeforeunload= function (e) {
e = e || window.event;
if (e) {
e.returnValue = '关闭提示';
}
// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
return '关闭提示';
};
是不是各位测试感觉都没有效果???
来讲几个点:
1、在IE中这个事件你只要去关闭窗口就触发。
2、谷歌、火狐等在F12调试模式中也会起效
3、谷歌、火狐、QQ等浏览器中被优化了,需要用户在页面有过任何操作才会出现提示!(坑)。
不相信的运行下面代码
window.onbeforeunload= function (e) {
while(true){
console.log('关注Jone,携手学习Python从入门到入狱');
}
};
别生气,你的需求实现了啊!
注意:alert写在里面是不起效的!!
总结:你去写你的事件写到return之前,什么http啊什么console.log都没问题,最好直接在里面调用方法去写业务,不要写一大坨代码在这里
附我的代码
//Vue中写在mounted里
mounted() {
window.onbeforeunload= (e)=>{
e = e || window.event;
if (e) {
e.returnValue = '关闭提示';
}
this.toCloseFun()//调用自己的方法
// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
return '关闭提示';
};
},
//普通js直接写ready里就行了
更多推荐
已为社区贡献1条内容
所有评论(0)