按下后退按钮时检测/警告

时间:2012-02-26 06:08:23

标签: javascript ajax jquery javascript-events

有没有办法检测/捕捉浏览器后退按钮被按下,并这样做询问他们是否确定要回去?

构建一个应用程序,它很快就会被转换为一个基于ajax的应用程序,并且根据用户要求重新启动应用程序,如果用户回来了......

我主要希望这能抓住意外的后退按钮,因为我个人觉得如果有人不能按照应用程序开始时给他们的指示......我不是担心他们的额外工作。

如果没有办法做到这一点,那么最佳解决方案是在新的窗口/标签中启动应用程序,以便它没有历史记录可以返回吗?

2 个答案:

答案 0 :(得分:3)

您可以使用onbeforeunload来检测后退按钮或意外页面导航:

window.addEventListener("beforeunload", function() {
     var ans = confirm("Are you sure?");
     if (ans) {
          //TODO: add your code here
     }
}, false);

要替换浏览器历史记录中的当前页面,您可以使用window.location.replace()

window.location.replace("yourNewURL");

答案 1 :(得分:0)

您也可以像这样设置onbeforeunload功能:

    window.onbeforeunload = function() {
       return "Are you sure you wish to leave?";
    };