如何通过js启用/禁用浏览器历史记录

时间:2013-11-18 11:21:39

标签: javascript web-applications browser-history

我们可以通过java脚本代码启用或禁用浏览器历史记录吗?  如果可能的话,请告诉我这样做的机制。

4 个答案:

答案 0 :(得分:4)

我认为这是不可能的。

您可以尝试使用document.location.replace()吗?它用于清除历史记录中的最后一个条目,并将其替换为新网址的地址。

答案 1 :(得分:2)

如果url或url-fragment更改,则条目将添加到浏览器历史记录中。意思是,浏览器会显示导航按钮。当用户单击它们时,前一个URL或片段将显示在地址栏中。您的应用程序可以忽略它对它做一些事情。如果正在寻找没有历史和导航链接的单页应用程序行为,那么您不应该更改初始URL或部分URL。

答案 2 :(得分:2)

这篇文章可能会有所帮助: How to clear browsers (IE, Firefox, Opera, Chrome) history using JavaScript or Java except from browser itself?

像YUI这样的JS框架表明我们无法删除历史记录项,但您可以使用历史记录执行其他一些操作。摘录自YUI文档 -

虽然无法从浏览器历史记录中删除条目,但可以创建新条目(或替换当前条目)并删除先前设置的一个或多个状态值。为此,请使用null或undefined添加或替换一个或多个值。

有关详细信息http://yuilibrary.com/yui/docs/history/

,请参阅此处

答案 3 :(得分:1)

如果您需要启用历史记录支持的浏览器,则可以使用Modernizr插件,不支持的历史浏览器将被禁用。

 if (Modernizr.history) {
        //Code goes here that works if it's HTML 5 Browser with .history support? 
       //  I know some HTML5     browsers deal with .history oddly (read buggy) so what
       //   happens in      those cases?
     } else {
      // disable code
   }

点击此链接https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history