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

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

【问题讨论】:

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

标签: javascript html


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    什么this SO question and answerthis 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);
          

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

          干杯...

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-03-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-01-20
            • 1970-01-01
            • 2010-10-13
            • 1970-01-01
            相关资源
            最近更新 更多