我可以禁用“后退”按钮浏览器功能吗?

时间:2015-12-09 17:28:24

标签: javascript jquery onbeforeunload

我想更改“后退”浏览器按钮的功能。我试过这个:

window.onbeforeunload = function() {
    show_page(last_page, 'not-search'); 
}

它的工作原理部分:它调用函数但浏览器仍然导航到上一页。有解决方案吗?

EDIT 我需要这样做:

 index(ajax内容)---用户点击--->其他ajax内容(我称之为A内容)
内容--->后退按钮---->上一个索引内容

3 个答案:

答案 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