浏览器后退按钮处理
Posted
技术标签:
【中文标题】浏览器后退按钮处理【英文标题】:Browser back button handling 【发布时间】:2013-01-10 16:22:37 【问题描述】:我正在尝试处理浏览器后退按钮事件,但找不到任何解决方案。
我想问用户他是否使用“确认框”点击浏览器后退按钮,如果他选择确定,我必须允许后退按钮操作,否则我必须停止后退按钮操作。
谁能帮我实现这个。
【问题讨论】:
***.com/questions/1589478/… 这可能已经在this thread中得到回答 您的问题要么是如何在 javascript 中实现历史按钮,要么是 TildalWave 和 Paul 提到的。 正如 TildalWave 和 Paul 提到的,但我只想处理后退按钮事件而不是页面重新加载和页面关闭事件。 researchonbeforeunload
, start in MDN docs 不确定你在想什么,但返回按钮会启动页面关闭事件,这就是你可以使用的全部
【参考方案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" ;)以上是关于浏览器后退按钮处理的主要内容,如果未能解决你的问题,请参考以下文章
在 React-router 中拦截/处理浏览器的后退按钮?