禁用浏览器的回退
下面是实现禁用浏览器回退的jq代码 原理是监听浏览器的popstate事件,在后退的同时前进一步,实现无法回退的效果。
$(document).ready(function () {
if (window.history && window.history.pushState) {
$(window).on('popstate', function () {
window.history.pushState('forward', null, '#');
window.history.forward(1);
});
}
});
但是在不同版本浏览器中可能未必有效,如我在高版本的谷歌浏览器中还是可以回退,必须要点击一次页面或者跟页面元素发生交互行为之后才可以监听此事件。应该是浏览器为了安全而避免网站劫持回退功能。
如果是并不需要兼容各个浏览器各个版本的话还是可以用此方法。不然的话还是使用别的方法来代替不能回退吧,比如监听路由、使用过滤器之类的来重定向页面。