有人可以分享经验/代码我们如何检测浏览器后退按钮点击(对于任何类型的浏览器)?
我们需要满足所有不支持 HTML5 的浏览器
有人可以分享经验/代码我们如何检测浏览器后退按钮点击(对于任何类型的浏览器)?
我们需要满足所有不支持 HTML5 的浏览器
'popstate' 事件仅在您之前推送某些内容时有效。所以你必须做这样的事情:
jQuery(document).ready(function($) {
if (window.history && window.history.pushState) {
window.history.pushState('forward', null, './#forward');
$(window).on('popstate', function() {
alert('Back button was pressed.');
});
}
});
对于浏览器向后兼容性,我推荐:history.js
在 javascript 中,导航类型 2 表示点击浏览器的后退或前进按钮,浏览器实际上是从缓存中获取内容。
if(performance.navigation.type == 2) {
//Do your code here
}
有很多方法可以检测用户是否单击了“后退”按钮。但一切都取决于您的需求。尝试探索下面的链接,它们应该对您有所帮助。
检测用户是否在当前页面按下了“返回”按钮:
在上一页(“前进”)按“后退”按钮后检测当前页面是否被访问:
发现它可以很好地跨浏览器和移动back_button_override.js。
(为 safari 5.0 添加了一个计时器)
// managage back button click (and backspace)
var count = 0; // needed for safari
window.onload = function () {
if (typeof history.pushState === "function") {
history.pushState("back", null, null);
window.onpopstate = function () {
history.pushState('back', null, null);
if(count == 1){window.location = 'your url';}
};
}
}
setTimeout(function(){count = 1;},200);
在 HTML5 的情况下,这将解决问题
window.onpopstate = function() {
alert("clicked back button");
}; history.pushState({}, '');