离开/关闭标签前是否进行确认?

时间:2019-01-17 05:30:38

标签: javascript php jquery html css

我正在尝试在用户关闭标签页或转到另一个标签页(例如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>

在Click上调用unhook()以获得按钮和链接

<a href="http://example.com" onClick="unhook()">No Block URL</a>

请帮助我解决此问题。

2 个答案:

答案 0 :(得分:0)

查看Ouibounce,它有助于检测用户何时离开页面(它看着光标的位置)。您可能可以构建此库。

答案 1 :(得分:0)

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

  

恶意网站经常利用此功能(自定义消息)以有害或破坏性的方式与用户进行交互。这就是为什么许多浏览器不再支持此功能的原因,直到某些补丁消除了对用户的威胁为止。

标准消息解决方案:

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