【问题标题】:Update current page URL but maintain the back button state更新当前页面 URL 但保持后退按钮状态
【发布时间】:2014-04-29 22:46:04
【问题描述】:

CONTEXT:我有一个显示产品列表的应用程序。单击产品时,您将进入一个新页面,该页面显示有关该产品的更多信息,包括可用颜色。

当单击一种颜色时,将显示相关的产品图像。 url hash 也使用颜色信息更新,因此在重新加载页面时将显示特定的颜色图像。

问题:当用户单击一堆颜色然后尝试使用返回按钮返回产品列表页面时,URL 会根据单击颜色时所做的状态更改而更新。我想更新我的代码,以便当用户单击后退按钮时,他们会被发送回产品列表。

本质上我想更新 url 哈希并保持后退按钮的原始状态。

这是我用来更新网址的代码:

window.location.hash = color_parameter

不使用window.history/history.js 是否可以实现预期功能?如果是这样,怎么做?如果没有,我需要实现什么才能使这项工作仍然是跨浏览器友好的?

我不希望在指向document.referrer的html中添加后退按钮

【问题讨论】:

  • 您可以尝试thisthis 之类的解决方案。就个人而言,我认为在产品页面上有“返回产品列表”之类的东西会很有意义。
  • @mellamokb - window.location.replace(window.location.href.split('#')[0] + '#' + parameter_string) 是我想要的。我想这个问题是重复的,尽管我在谷歌搜索的那一小时内没有遇到stackoverflow.com/a/11471401/802521
  • @mellamokb - 如果您添加您的评论作为答案我会接受它作为这个问题的答案。

标签: javascript url


【解决方案1】:

现在我知道有 window.location.replace 这样的东西,也许这不再是最好的解决方案了,但它仍然是一个解决方案:

解决方案:停止在地址本身中添加颜色。只需在页面上动态更改颜色即可。如果用户刷新页面,可能会发送一个 Ajax 请求以保存服务器会话上的最新颜色。然后在页面刷新时,PHP 页面(或 ASP 或您使用的任何东西)会将最新的颜色打印到您的 JS 变量中,并且将显示相同的颜色,而不会更改地址,也不会破坏后退按钮。

【讨论】:

  • 感谢您的输入,但我需要 url 中的颜色。实际上还有许多其他变量(性别、方向等)也插入到 url 中。这允许用户共享一个链接,并且该链接能够准确地再现“共享者”在他们的屏幕上看到的内容。
猜你喜欢
  • 1970-01-01
  • 2017-06-25
  • 2021-10-01
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 2013-01-21
相关资源
最近更新 更多