关闭窗口时onunload和onbeforeunload不起作用的解决办法

今天学习卸载事件(onunload)时候,有时候关闭窗口有作用,有时候不起作用,在各个浏览器中的效果也不一样,为什么会这样呢?

上网查了查相关的解释,大佬说:“onbeforeunload和onunload在谷歌和火狐中,必须先按F12打开开发者模式,刷新或关闭网页,才会用提示框 。而且不能连续刷新,如刷新第一次有提示框接着刷新第二次,就变成直接刷新没有提示框。但是如果2次刷新时间间隔在30秒左右,则第二次刷新会有提示框。如果不按F12打开开发者模式,谷歌和火狐在onbeforeunload事件触发时都不会有提示框,会直接刷新或关闭页面”。

按照大佬的解释,简单的测试了下,还真是如此

如下代码显示:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script>
    window.onbeforeunload = function(){
      return "onbeforeunload is work";
    }
    </script>
</head>
<body>
  欢迎学习JavaScript
</body>
</html>

在IE浏览器中的效果图:

关闭窗口时onunload和onbeforeunload不起作用的解决办法

在谷歌浏览器的效果图:

注意:要先按F12打开开发者模式

关闭窗口时onunload和onbeforeunload不起作用的解决办法

 在火狐浏览器的效果图:

注意:要先按F12打开开发者模式

关闭窗口时onunload和onbeforeunload不起作用的解决办法