如何不保留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锚的历史的主要内容,如果未能解决你的问题,请参考以下文章

如何保留 html 内容历史记录以使后退按钮起作用?

如何设计保留历史而不重复的数据库模式?

如何更改已经具有高度锚的 UIView 的高度?

如何在锚点标记中以编程方式调用onclick()事件,同时在onclick函数中保留“this”引用?

当 event.target 是 HTMLImageElement 时如何获取锚的 href?

如何使用 react-testing-library 测试锚的 href