使用 jQuery 删除浏览器历史记录
我有一个基于 jQuery 的 ajax 应用程序。 我使用 jQuery 历史记录 插件启用了浏览器历史记录。 但我们发现该应用程序生成了太多历史记录。
特别是,我们提供了一个页面内的“ajax-back”按钮,使页面能够返回到之前的 ajax 状态。 当按下页内“ajax-back”按钮时,我们希望它像浏览器后退按钮一样,通过移动历史记录的当前索引,或删除最新的历史记录,而不是插入新的历史记录。
所以,我想问一下,是否可以从javascript中删除最新的浏览器记录?或者是否可以修改浏览器历史记录列表的当前索引?
示例基于 jQuery 历史插件的我们将非常感激。
I have an ajax application that is based on jQuery. I enabled browser history using jQuery history plugin. But we find out that the application generated too much history.
Especially, we provide an in-page "ajax-back" button that enable the page to return to previous ajax state. When the in-page "ajax-back" button was pressed, we want it to act like the broswer back button, by moving the current index of the history, or removing the latest history record, instand of inserting a new history record.
So, I would like to ask, is it possible to remove the latest browser record from javascript? or is it possible to modify the current index of the browser history list?
Examples that are based on jQuery history plugin will be very appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(2)
您很可能无法轻松地完成您正在尝试的事情。 有 window.location.replace,它会转到一个新的 URL 并从历史记录中删除当前页面,但这是针对全页面导航的,并且几乎肯定会打破 jQuery 伪造历史记录的方式。
可以使用 window.history.go() 更改历史记录堆栈中的位置,该方法将整数偏移量记录到历史记录中并导航到相关条目。 它根本不会修改堆栈,只是将您置于一个新位置。 还有 back() 和forward() 函数,它们分别用 -1 和 1 调用 go。 这可能就是您正在寻找的内容,尽管它不会修改堆栈,而只是在其中移动您。
理想情况下,您会找到一个 jQuery 插件,它不会像 jQuery.history 那样维护历史记录,而是提供 onhashchange 抽象,并且您的库只会对哈希更改做出反应。 这样,浏览器就负责历史堆栈,并且您不会遇到很多困扰 ajaxian 历史库的疯狂问题。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
浏览器历史记录通常可以通过 JavaScript 以非常有限的方式访问(以防止网站窥探/访问该信息)。 简短的回答-据我所知,您无法通过 jquery 获得您想要做的事情。
browser history is typically accessible in a very limited way through javascript (to prevent sites from snooping/accessing that information). short answer - what you are trying to do is not available to you through jquery, as far as I know.