我试图在用户关闭标签页或转到另一个标签页(如facebook,gmail,GoDaddy等)之前显示确认弹出消息。

我的代码适用于Firefox,但不适用于其他浏览器(例如chrome,safari等)。

<script type="text/javascript">
      var hook = true;
      window.onbeforeunload = function() {
        if (hook) {
          return "Did you save"
        }
      }
      function unhook() {
        hook=false;
      }
    </script>

调用unhook()onClick获取按钮和链接
<a href="http://example.com" onClick="unhook()">No Block URL</a>

请帮助我解决此问题。

最佳答案

如果查看window.beforeunload()api,您会看到,尽管广泛支持基本的卸载事件,但是只能在Internet Explorer和某些浏览器的某些版本中设置自定义消息。因此,只需使用正常的标准消息即可。



标准消息解决方案:

window.addEventListener('beforeunload', function (e) {
  // Cancel the event
  e.preventDefault();
  // Chrome requires returnValue to be set
  e.returnValue = '';
});

09-25 16:57