此问题在此处已有答案:
Intercepting call to the back button in my AJAX application(12个答案)
八年前就关门了。
我必须检测用户是否点击了后退按钮。为此我使用
window.onbeforeunload = function (e) {
}
如果用户单击后退按钮,则此事件有效。但如果用户单击F5或浏览器的重新加载按钮,则也会触发此事件。如何解决此问题?
此问题在此处已有答案:
Intercepting call to the back button in my AJAX application(12个答案)
八年前就关门了。
我必须检测用户是否点击了后退按钮。为此我使用
window.onbeforeunload = function (e) {
}
如果用户单击后退按钮,则此事件有效。但如果用户单击F5或浏览器的重新加载按钮,则也会触发此事件。如何解决此问题?
6条答案
按热度按时间ldfqzlk81#
所以就 AJAX 而言...
在使用大多数使用 AJAX 来导航页面特定部分的网络应用程序时,按下后退按钮是一个“巨大”的问题。我不接受“必须禁用按钮就意味着你做错了什么”的说法,事实上,不同方面的开发人员早就遇到了这个问题。以下是我的解决方案:
据我所知,这在Chrome和Firefox上都有效。
7qhs6swi2#
如果您的浏览器不支持跳转,请尝试以下操作:
aiazj4mn3#
我知道的最好的方法是:
jm81lzqq4#
我是这样检测后退按钮的:
它可以工作,但我必须在Chrome中创建一个cookie来检测我第一次在页面上,因为当我在没有cookie控制的情况下进入页面时,浏览器会在没有点击任何后退按钮的情况下执行后退操作。
history.pushState("jibberish", null, null);
会复制浏览器历史记录。我该怎么修呢?
i1icjdpr5#
由于后退按钮是浏览器的一项功能,因此很难更改默认功能。不过,有一些解决方法。请看这篇文章:
通常,禁用后退按钮的需要是编程问题/缺陷的一个很好的指示器。我会寻找一种替代方法,如设置会话变量或cookie来存储表单是否已经提交。
vfh0ocws6#
我假设您正在尝试处理 AJAX 导航,而不是试图阻止用户使用后退按钮,后退按钮几乎违反了UI开发的所有原则。
以下是一些可能的解决方案: