<分区>
我必须检测用户是否点击了后退按钮。 为此,我正在使用
window.onbeforeunload = function (e) {
}
如果用户点击后退按钮,它就会工作。但如果用户单击 F5,也会触发此事件 或浏览器的重新加载按钮。我该如何解决这个问题?
标签 javascript jquery
<分区>
我必须检测用户是否点击了后退按钮。 为此,我正在使用
window.onbeforeunload = function (e) {
}
如果用户点击后退按钮,它就会工作。但如果用户单击 F5,也会触发此事件 或浏览器的重新加载按钮。我该如何解决这个问题?
最佳答案
就 AJAX 而言......
在使用大多数使用 AJAX 导航页面特定部分的网络应用程序时按回键是一个巨大的问题。我不接受“必须禁用按钮就意味着你做错了什么”的说法,事实上,不同方面的开发人员长期以来都遇到过这个问题。这是我的解决方案:
window.onload = function () {
if (typeof history.pushState === "function") {
history.pushState("jibberish", null, null);
window.onpopstate = function () {
history.pushState('newjibberish', null, null);
// Handle the back (or forward) buttons here
// Will NOT handle refresh, use onbeforeunload for this.
};
}
else {
var ignoreHashChange = true;
window.onhashchange = function () {
if (!ignoreHashChange) {
ignoreHashChange = true;
window.location.hash = Math.random();
// Detect and redirect change here
// Works in older FF and IE9
// * it does mess with your hash symbol (anchor?) pound sign
// delimiter on the end of the URL
}
else {
ignoreHashChange = false;
}
};
}
}
据我所知,这适用于 chrome、firefox、尚未测试 IE。
关于javascript - 检测浏览器中的后退按钮点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6359327/
相关文章:
javascript - 在子 Controller 中触发时,Ionic AngularJS 父动画无法正确运行
php - Jquery、php ajax post 500 内部服务器错误返回
javascript - 如何反转以下表单元素禁用功能的过程
javascript - 从函数获取本地范围并在单击时调用另一个函数 setTimeout
javascript - jquery中如何调用$(function)
javascript - 如何使用 JQuery 将 div 放置在鼠标单击旁边?
javascript - 如何修复 window.CKFinder 未定义