如何使用javascript禁用后退和前进按钮

Posted

技术标签:

【中文标题】如何使用javascript禁用后退和前进按钮【英文标题】:How do I disable back and forward button with javascript 【发布时间】:2011-08-31 19:06:50 【问题描述】:

我想禁用浏览器中的后退和前进操作到我的页面。 那么如何禁用浏览器的后退和前进操作。

【问题讨论】:

从表面上看,这是个坏主意。鼓励您详细说明为什么要这样做:) @JohnP - +1。我认为不显眼的 javascript 的部分目的是给用户返回他的 Prev/Next 按钮,而不是完全拿走它们。 :) 见***.com/search?q=disable+back+button 您可以使用 AJAX 加载所有内容,这样实际的 URL 就不会改变。不过,我并没有真正看到它的用途——你想禁用它的后退按钮有什么用? 【参考方案1】:

你不能。这不是浏览器公开的。

无论如何,这是一个可用性噩梦 - 我不建议这样做,因为用户非常习惯使用后退和前进按钮。

可以以这样的方式编写您的应用程序,如果使用 back,它会“中断”,但我建议这会使您的应用程序对大多数人来说几乎无法使用。

【讨论】:

【参考方案2】:

什么this SO question and answer 和this SO Q&A

这并不完全是您要寻找的东西,但会给您一个灵感,告诉您如何对用户单击后退和前进按钮做出反应。

两个帖子都提到了这个 jquery 插件:jQuery history plugin

【讨论】:

【参考方案3】:

您可以使用 html 头部中的以下脚本禁用返回页面。

<script type = "text/javascript" >
   function preventBack()window.history.forward();
    setTimeout("preventBack()", 0);
    window.onunload=function()null;
</script>

【讨论】:

【参考方案4】:

通过谷歌搜索偶然发现这里。希望这会帮助那些有同样问题的人。

在强制提及这通常是一个可用性问题之后,应该在其他地方解决,我发现它可以在 chrome 85 中工作:

<script type = "text/javascript">
    history.pushState(null, null, location.href);
    history.back();
    history.forward();
    window.onpopstate = function ()
    
        history.go(1);
    ;
</script>

最后,平心而论,功劳归于以下线程:

https://support.google.com/chrome/thread/8721521?msgid=10849294

【讨论】:

【参考方案5】:

您可以通过以下方式禁用后退按钮

window.history.forward(1);

希望这会有所帮助...:)

干杯...

【讨论】:

以上是关于如何使用javascript禁用后退和前进按钮的主要内容,如果未能解决你的问题,请参考以下文章

Jquery 禁用浏览器的 后退和前进按钮

Angular js-模拟浏览器后退/前进按钮禁用

javascript怎么禁用浏览器后退按钮

如何使用 JavaScript 禁用浏览器中的后退按钮 [重复]

如何使用 JavaScript 禁用浏览器中的后退按钮 [重复]

如何使用 JavaScript 禁用浏览器中的后退按钮 [重复]