上下文:我有一个显示产品列表的应用。单击产品时,您将转到新页面,该页面显示有关该产品的更多信息,包括可用颜色。
单击颜色时,将显示关联的产品图像。 url哈希也会使用颜色信息进行更新,因此在重新加载页面时,将显示特定的彩色图像。
问题:当用户点击一堆颜色,然后尝试使用后退按钮返回产品列表页面时,会根据单击颜色时所做的状态更改来更新网址。我想更新我的代码,以便当用户点击后退按钮时,它们会被发送回产品列表。
基本上我想更新url哈希并保持后退按钮的原始状态。
这是我用来更新我的网址的代码:
window.location.hash = color_parameter
如果不使用window.history
/ history.js,是否可以实现预期的功能?如果是这样,怎么样?如果没有,我需要实现什么来使这项工作仍然是跨浏览器友好的?
我宁愿不在指向document.referrer
答案 0 :(得分:0)
现在我知道有window.location.replace这样的事情可能这不再是最好的解决方案,但它仍然是一个解决方案:
解决方案:停止将颜色放入地址本身。只需在页面上动态更改颜色即可。如果用户刷新页面,可能会发送Ajax请求以保存服务器会话中的最新颜色。然后在页面刷新时,PHP页面(或ASP或你使用的任何东西)会将最新的颜色打印到你的JS变量中,并且在没有改变地址且没有后退按钮被破坏的情况下显示相同的颜色。