【问题标题】:Browser back button handling浏览器后退按钮处理
【发布时间】:2013-01-10 16:22:37
【问题描述】:

我正在尝试处理浏览器后退按钮事件,但找不到任何解决方案。

我想问用户他是否使用“确认框”点击浏览器后退按钮,如果他选择确定,我必须允许后退按钮操作,否则我必须停止后退按钮操作。

谁能帮我实现这个。

【问题讨论】:

  • 这可能已经在this thread中得到回答
  • 您的问题要么是如何在 JavaScript 中实现历史按钮,要么是 TildalWave 和 Paul 提到的。
  • 正如 TildalWave 和 Paul 提到的,但我只想处理后退按钮事件而不是页面重新加载和页面关闭事件。
  • research onbeforeunload, start in MDN docs 不确定你在想什么,但返回按钮会启动页面关闭事件,这就是你可以使用的全部

标签: javascript jquery html browser


【解决方案1】:

如果按下后退按钮,警告/确认用户如下。

window.onbeforeunload = function() { return "Your work will be lost."; };

您可以使用下面提到的链接获取更多信息。

Disable Back Button in Browser using JavaScript

希望对你有帮助。

【讨论】:

  • 此方案仅适用于 IE 浏览器,不适用于 Chrome 和 Firefox 浏览器。任何人都可以提供特殊的JS脚本,以便我们可以处理所有浏览器上的后退按钮....
  • @BhanuprasadKunde - 当您说 onebeforeunload 仅适用于 IE 时,您错了。它适用于 IE、FF、chrome 和 Opera。检查 javascript 控制台中的实现错误。
  • 可以确认,window.onbeforeunload 也适用于 Chrome、FF(Opera?-我不测试)
  • 这仅适用于 Firefox,前提是您与网站进行了交互
  • 第二个链接“Mastering_The_Back_Button_With_Javascript”好像失效了
【解决方案2】:

您也可以在页面加载时添加哈希:

location.hash = "noBack";

然后只需处理位置哈希更改以添加另一个哈希:

$(window).on('hashchange', function() {
    location.hash = "noBack";
});

这使得哈希始终存在,并且后退按钮首先尝试删除哈希。然后由“hashchange”处理程序再次添加哈希 - 因此页面实际上永远不会更改为前一个。 p>

【讨论】:

  • 小心处理 href="#id" ;)
猜你喜欢
  • 2023-02-23
  • 2018-06-02
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
  • 2011-05-20
  • 2016-01-14
  • 2020-12-31
  • 2013-03-19
相关资源
最近更新 更多