首页 新闻 会员 周边

chrome 浏览器 onbeforeunload 事件不触发,有替代方案吗?

0
悬赏园豆:50 [已解决问题] 解决于 2019-06-19 11:16

在通过浏览器的 window.onbeforeunload 实现离开页面提示功能时,发现在关闭浏览器的时候,window.onbeforeunload 事件并没有被触发。我使用的是最新版的Vivaldi浏览器,通过输入vivaldi://about 可以看到所使用的浏览器内核版本。

然后使用最新版本的chrome浏览器进行测试,浏览器版本如下:

  • 发现73.0.3683.103版本也存在问题,打开页面你需要和页面有交互,才能在关闭浏览器后触发 window.onbeforeunload事件,如果直接打开直接关闭,并不能触发。
  • 73.0.3683.105版本进行.103版本的操作还是不能触发 window.onbeforeunload事件

后来在 developers-google 发现 window.onbeforeunload 事件在 Chrome 51已被移出,其他浏览器也相应版本移除了。

那么有哪些方案可能替代 window.onbeforeunload 呢?

  • chrome 73.0.3683.103版本内核测试

    第一种:直接打开直接关闭,不触发
    第二种:打开后点击一下a链接,在关闭触发

  • 测试代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        window.onbeforeunload = function (e) {
            var message = 'leave?';
            e = e || window.event;
            if (e) {
                e.returnValue = message;
            }
            return message;
        };
    </script>
</head>
<body>
    <a href="#">cnblogs</a>
</body>
</html>
ohyex的主页 ohyex | 小虾三级 | 园豆:1496
提问于:2019-04-19 18:41
< >
分享
最佳答案
0

收获园豆:40
Giant150 | 小虾三级 |园豆:1165 | 2019-06-14 15:06
其他回答(2)
0

见http://code.google.com/p/chromium/issues/detail?id=4422

收获园豆:10
beelake | 园豆:218 (菜鸟二级) | 2019-05-04 10:51
0

学习一下内容太短了

test9119 | 园豆:113 (初学一级) | 2019-06-19 15:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册