如何在后退按钮上停止导航

时间:2015-09-18 09:17:07

标签: javascript jquery

我想在点击浏览器的后退按钮时停止导航

$(window).on('beforeunload', function(e){
    realTimePersonalizationTest(e);
});

function realTimePersonalizationTest(e) {
  event.preventDefault();
}

但是这段代码正在运作。它是导航回到上一页。

3 个答案:

答案 0 :(得分:2)

防止点击后退按钮导航听起来不对 使用beforeunload事件唯一可以做的就是返回一个字符串,以便在用户离开页面之前提示用户。

$(window).on('beforeunload', function(e){
    return "Are you sure? Please, don't leave.";
});

例如,打开this JSFiddle demo并尝试关闭它。

最有可能的是,出于安全原因,浏览器不会支持任何其他实现。后退按钮是“硬件”按钮,应始终导航到上一页。

您可以使用重定向,会话变量等实现此限制服务器端 但是,为什么需要禁用此行为?我坚信应该有另一种更一致的浏览器和用户友好型解决方案。

答案 1 :(得分:0)

如果您不需要支持旧的IE浏览器,则此代码段将适用于您。

var path = 'Name of your page';
//Like for www.Test.com/abc.html write abc.html in path variable
history.pushState(null, null, path + window.location.search);
window.addEventListener('popstate', function (event) {
    history.pushState(null, null, path + window.location.search);
});

我希望这对你有用..更多信息请查看http://www.cheezycode.com/2015/08/how-to-stop-browser-back-using-javascript.html

答案 2 :(得分:0)

您可以使用popstate事件来检测浏览器后退按钮

      window.onpopstate = function(event) {
  window.location.assign("www.google.com");
};

然后在此代码中找到您当前的页面而不是window.location.assign(“www.google.com”);