【问题标题】:Delete browser history using jQuery使用 jQuery 删除浏览器历史记录
【发布时间】:2010-10-20 03:58:39
【问题描述】:

我有一个基于 jQuery 的 ajax 应用程序。我使用 jQuery history 插件启用了浏览器历史记录。但我们发现该应用程序生成了太多历史记录。

特别是,我们提供了一个页面内的“ajax-back”按钮,使页面能够返回到以前的 ajax 状态。当按下页面内的“ajax-back”按钮时,我们希望它像浏览器返回按钮一样,通过移动历史的当前索引,或删除最新的历史记录,而不是插入新的历史记录。

那么,我想问一下,是否可以从javascript中删除最新的浏览器记录?或者是否可以修改浏览器历史列表的当前索引?强>

非常感谢基于 jQuery 历史插件的示例。

【问题讨论】:

    标签: javascript jquery browser browser-history


    【解决方案1】:

    通常可以通过 javascript 以非常有限的方式访问浏览器历史记录(以防止网站窥探/访问该信息)。简短的回答 - 据我所知,您无法通过 jquery 获得您想要做的事情。

    【讨论】:

      【解决方案2】:

      您很可能无法轻松地做您正在尝试的事情。有 window.location.replace,它转到一个新的 URL 并从历史记录中删除当前页面,但这是用于全页导航的,并且几乎肯定会打破 jQuery 伪造历史的方式。

      可以使用 window.history.go() 更改您在历史堆栈中的位置,该函数将整数偏移量放入历史记录并导航到相关条目。它根本不会修改堆栈,它只是把你放在一个新的地方。还有 back() 和 forward() 函数,它们分别用 -1 和 1 调用 go。这可能就是您要查找的内容,尽管它不会修改堆栈,只是在其中移动您。

      理想情况下,您会找到一个 jQuery 插件,它不会像 jQuery.history 那样维护历史记录,而是提供 onhashchange 抽象,并且您的库只会对哈希更改做出反应。这样,浏览器负责历史堆栈,您不会遇到很多困扰 ajaxian 历史库的疯狂问题。

      【讨论】:

      • +1。 Ersatz 导航是可用性的噩梦。使用真正的后退/前进按钮。
      猜你喜欢
      • 1970-01-01
      • 2015-07-29
      • 2011-02-03
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2017-11-02
      • 2011-11-14
      • 1970-01-01
      相关资源
      最近更新 更多