在通过浏览器的 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>
见http://code.google.com/p/chromium/issues/detail?id=4422
学习一下内容太短了