如何检测onbeforeunload确认提示答案

时间:2018-01-29 16:20:34

标签: javascript

我正在使用onbeforeunload来显示提示,很酷。但我想检测答案,取消或离开。

我的情况是我有一个单页面应用程序,导航由下拉列表触发。如果用户取消导航,我需要恢复下拉列表中的上一个选定项目。这是显示导航确认提示的代码:



window.onbeforeunload = function() {
  return "Are you sure you want to navigate away?";
}




有什么类似事件onbeforeunloadNavigationCancelled事件或类似事件吗?

我目前的解决方案是在onbeforeunload上设置一个标志添加间隔。如果达到onunload事件,我知道用户选择离开。如果没有,在间隔回调中,我知道导航被取消了。但这并不是很好,但如果不存在其他选择,也会这样做。

1 个答案:

答案 0 :(得分:1)

我会在beforeunload事件触发时恢复下拉列表 的值。事实上:

  • 如果用户仍然存在,则可以按照您的意愿恢复下拉列表;
  • 如果用户离开,其值实际上不再重要。

由于在这种情况下始终会恢复下拉列表,因此您可能希望保存触发导航的值,以便了解用户想要去的位置。