监听浏览器窗口关闭事件onbeforeunload不起作用
作者:互联网
先贴代码
<body>
<!-- <script>window.alert("Catalina")</script> -->
<!-- <script>window.confirm("Catalina 我还来得及吗?")</script> -->
<!-- <script>window.prompt("你喜欢现在的我吗?","喜欢")</script> -->
<input type="button" value="单击我" name="btn" id="btn" >
<a href="https://www.cctv.com"> 你好</a>
<script>
window.onload = function(){
alert("欢迎");
window.onbeforeunload = function(){
return 111;
// alert("再见!");
}
window.onresize = function(){
alert("你调整了窗口大小!");
}
}
</script>
</body>
在使用卸载事件时,alert("“再见!”)无法展现,百思不得其解,后来了解到:事件触发了,因为页面跳转的时候,window对象和DOM对象都已经被销毁了,所以alert不能执行
调整为 return xxx; 时效果出现(goole、Firefox、ME),但无法定制化自己的alert内容
又听说有这么一说: onbeforeunload 方法需要用户和页面有交互动作才能在关闭页面时进行触发,否则不生效。
onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发。
该事件可用于弹出对话框,提示用户是继续浏览页面还是离开当前页面。
onbeforeunload事件在onunload事件之前触发。
alert,confirm,prompt不执行
在一些浏览器中,在onbeforeunload中调用alert,confirm,prompt等方法会被忽略。
在Chrome和Firefox中,页面加载完成后,如果用户未对页面进行操作,比如“点击”、“输入”等等,onbeforeunload将不会被执行。而在Safari中onbeforeunload总是会被执行。
需要指出的是,许多浏览器会忽略该事件并自动关闭页面无需用户的确认。火狐浏览器在配置页面about:config设有一个dom.disable_beforeunload的开关变量用于开启这个功能。
标签:浏览器,alert,onbeforeunload,window,事件,监听,页面 来源: https://blog.csdn.net/weixin_44856544/article/details/117792938