如何不保留html锚的历史
Posted
技术标签:
【中文标题】如何不保留html锚的历史【英文标题】:How to not keep history of html anchor 【发布时间】:2013-10-19 16:26:08 【问题描述】:我正在使用 :target 选择器在 css3 中创建一个图像滑块。我有一个下一个和上一个按钮正在执行这行 javascript
window.location = "#image" + image;
问题是,如果我单击浏览器的后退按钮,它会显示滑块的上一个图像。我希望后退按钮转到上一页,而不是上一个锚点。
感谢您的帮助
【问题讨论】:
soooo,如果您不需要主题标签历史记录,为什么要更改 URL 的主题标签? 嗯,最简单的方法就是停止更改 url,并找到另一种滑动图像的方法 我同意这一点,我可能会将其更改为 jquery 滑块而不是 css3 【参考方案1】:window.location.replace("#image" + image);
这会进行简单的重定向,而不会将其添加到历史记录中。 MDN:https://developer.mozilla.org/en-US/docs/Web/API/Location.replace 上一个问题:What's the difference between window.location= and window.location.replace()?
【讨论】:
【参考方案2】:使用History API:
history.replaceState(, document.title, "#image" + image);
history.replaceState() 的操作与 history.pushState() 完全相同,只是 replaceState() 修改当前历史条目而不是创建新条目。
当您想要更新当前历史条目的状态对象或 URL 以响应某些用户操作时,replaceState() 特别有用。
【讨论】:
@Marc-AndréTherrien 抱歉,我错过了。我认为没有办法使用:target
避免浏览器历史记录。
我也不这么认为,我可能会改变整个事情以上是关于如何不保留html锚的历史的主要内容,如果未能解决你的问题,请参考以下文章
如何在锚点标记中以编程方式调用onclick()事件,同时在onclick函数中保留“this”引用?