使用 jQuery 删除浏览器历史记录

发布于 07-17 10:24 字数 379 浏览 10 评论 0原文

我有一个基于 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

可是我不能没有你2024-07-24 10:24:19

浏览器历史记录通常可以通过 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.

铃予2024-07-24 10:24:18

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

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

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

Most likely you can't easily do what you're attempting. There is window.location.replace, which goes to a new URL and removes the current page from the history, but that's for full page navigations and will almost certainly break jQuery's way of faking history.

It is possible to change where in the history stack you are, using window.history.go(), which takes an integer offset into history and navigates to the relevant entry. It doesn't modify the stack at all, it just puts you in a new place. There are also back() and forward() functions which just call go with -1 and 1 respectively. This is probably what you're looking for, though it won't modify the stack, just move you around in it.

Ideally, you'd find a plugin for jQuery that doesn't maintain history the way jQuery.history does, but instead offers an onhashchange abstraction, and your library would just react to hash changes. That way, the browser is in charge of the history stack and you won't run into a lot of the crazy issues that dog ajaxian history libraries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文