我想更改“后退”浏览器按钮的功能。我试过这个:
window.onbeforeunload = function() {
show_page(last_page, 'not-search');
}
它的工作原理部分:它调用函数但浏览器仍然导航到上一页。有解决方案吗?
EDIT
我需要这样做:
index(ajax内容)---用户点击--->其他ajax内容(我称之为A内容)
内容--->后退按钮---->上一个索引内容
答案 0 :(得分:1)
在函数中返回一个字符串以警告用户并提供取消选项。
window.onbeforeunload = function() {
show_page(last_page, 'not-search');
return "please do not use the back button";
}
完全禁用既棘手又不好。以这种方式限制用户很容易被视为垃圾邮件或不受欢迎的行为。
修改强>
在我阅读完您的编辑后,我建议您在使用ajax修改页面时使用history.pushState
。这样,后退按钮将导航到您想要的早期状态。查看history API以了解您需要的所有功能。
当按下上一个按钮时,它将触发window.onpopstate
功能,您可以在其中处理加载正确的内容。见下面的例子:
window.onpopstate = function(event) {
alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
答案 1 :(得分:-1)
阻止用户转到上一页
在页面底部添加此js
<script language="text/javascript">
window.history.forward();
</script>
答案 2 :(得分:-1)
看看这个:http://www.irt.org/script/311.htm
从上面的网站引用:
简单回答 - 你不能。
更长的答案 - 你不能完全取消用户返回上一个位置的能力,尽管你可以使其更难。
在您的问题中添加更新后
如果您使用Ajax操作页面内容,则可以手动更新浏览器的历史记录。您还应该考虑在网址末尾添加哈希值。
有关历史记录API的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/History_API