其他分享
首页 > 其他分享> > 监听浏览器窗口关闭事件onbeforeunload不起作用

监听浏览器窗口关闭事件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