阻止/禁用beforeunload对话框

时间:2016-08-15 21:11:06

标签: javascript jquery

我正在寻找适用于所有浏览器和操作系统的东西

将此作为参考https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload

到目前为止我有什么

window.addEventListener("beforeunload", function (e) {
   var confirmationMessage = null;
   // do some ajax stuff // just setting a SESSION variable
   e.returnValue = confirmationMessage;
   return confirmationMessage;
});

很难排除故障,因为有时事件会发生,有时甚至不会发生。好像我必须在重新触发之前暂停一下。 触发我感兴趣的事件的方法是刷新和后退按钮。

Safari似乎有效,但不适用于Chrome或Firefox

感谢您的想法。

1 个答案:

答案 0 :(得分:0)

作为替代方案,您可以在localStorage中存储需要与会话同步的数据,并在用户返回页面时检查是否有任何数据要与服务器同步。您需要在同步后清除localStorage中的数据。

优点:

  • 它是同步的
  • 适用于任何现代浏览器

缺点:

  • 如果依赖于此会话变量
  • ,可能需要您确保在加载应用之前进行同步