更改 URL 上的查询字符串和更新浏览器历史记录有哪些选项?

发布于 2024-09-16 01:57:34 字数 165 浏览 9 评论 0原文

有什么方法可以更改 URL 或向“后退按钮”添加更多历史记录,而无需刷新整个页面?

我的应用程序是基于 AJAX 的,我想向历史记录中添加一些“撤消”事件,以便用户可以简单地回击并保留旧值。

今天有什么可能?我听说其中一些内容可能在 HTML5 中,但尚未检查当前浏览器支持哪些内容。

Is there any way I can change the URL or add more history to the "back button" without having to refresh the entire page?

My application is AJAX based and I'd like to add some "undo" events to history so that the user can simply hit back and retain the old values.

What's possible today? I hear some of this may be in HTML5 but haven't checked whats supported in current browsers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(4

白芷 2024-09-23 01:57:34

我认为您可以使用 window.location.hash 来跟踪页面的 #part,在您的情况下,#state1, #state2 等等。

window.location.hash = '#state' + (++ stateN) 设置并
stateN = parseInt(window.location.hash.match(/\d+$/)[0])

请参阅On - window.location.hash - Change? 了解有关如何检测位置哈希更改的更多详细信息。

I think you can use window.location.hash to track the #part of the page, in your case, #state1, #state2 and so on.

window.location.hash = '#state' + (++ stateN) to set and
stateN = parseInt(window.location.hash.match(/\d+$/)[0])

See On - window.location.hash - Change? for more details about how to detect location hash changes.

云巢 2024-09-23 01:57:34

您可以使用301 重定向。就我个人而言,我会在客户端使用 cookie,或者在后端使用会话来存储面包屑。对于 AJAX 应用程序来说,在 URL 中存储状态信息是一个坏主意,因为人们可能会返回到服务器端未处于正确状态以响应的 URL。

另一种选择是提供您自己的后退按钮,该按钮知道要返回到哪个页面。

You could use 301 redirection. Personally, I would use cookies on the client side, or sessions in your back end, to store the breadcrumbs. Storing state information in the URL is a bad idea for AJAX applications, because people might return to a url that the server side is not in the right state to respond to.

Another option would be to provide your own Back button that knows which page to go back to.

姐不稀罕 2024-09-23 01:57:34

这个问题的答案或多或少与我对这些问题的答案相同:

总之,您可能想要查看的两个项目解释了整个 hashchange 过程并将其与 ajax 结合使用:

  • < p>jQuery 历史(使用哈希来管理页面状态并绑定到更改以更新您的页面)。

  • jQuery Ajaxy(jQuery History 的 ajax 扩展,允许完整的 ajax 网站同时完全不引人注目且可优雅地降解)。

The answer for this question will be more or less the same as my answers for these questions:

In summary, two projects that you'll probably want to look at which explain the whole hashchange process and using it with ajax are:

  • jQuery History (using hashes to manage your pages state and bind to changes to update your page).

  • jQuery Ajaxy (ajax extension for jQuery History, to allow for complete ajax websites while being completely unobtrusive and gracefully degradable).

苍风燃霜 2024-09-23 01:57:34

可以使用 ASP.NET 内置的脚本管理器来更新浏览器的历史记录。完整的操作方法位于此处:

http://www.asp.net/aspnet-in-net-35-sp1/videos/introduction-to-aspnet-ajax-history

It is possible to use ASP.NET's built in Script Manager to update the browser's history. A full how-to to do this is located here:

http://www.asp.net/aspnet-in-net-35-sp1/videos/introduction-to-aspnet-ajax-history

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