如何不保留HTML锚点的历史记录

4
我正在使用CSS3中的:target选择器创建一款图像轮播。我有一个下一个和上一个按钮,执行以下JavaScript代码:
window.location = "#image" + image;

问题是,如果我点击浏览器的后退按钮,它会显示滑块的上一张图片。我希望后退按钮返回到上一页,而不是上一个锚点。
感谢您的帮助。

所以,如果你不需要 hashtag 历史记录,为什么要更改 URL 的 hashtag 呢? - Zathrus Writer
4
最简单的方法是停止更改URL,寻找另一种方式来轮播图片。 - Bobby5193
我同意这个观点,我可能会将它改为 jQuery 滑块而不是 CSS3。 - Marc-André Therrien
2个回答

4

使用History API

history.replaceState({}, document.title, "#image" + image);

history.replaceState() 与 history.pushState() 几乎一模一样,唯一不同的是 replaceState() 修改当前历史记录项而不是创建一个新的。

当您想要响应某个用户操作更新当前历史记录项的状态对象或 URL 时,replaceState() 尤为有用。


@Marc-AndréTherrien 抱歉,我错过了。我认为没有办法使用:target避免浏览器历史记录。 - Pavlo
我也不这么认为,我可能会改变整个东西。 - Marc-André Therrien

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接