监听浏览器窗口关闭事件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的开关变量用于开启这个功能。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值