【问题标题】:How to not keep history of html anchor如何不保留html锚的历史
【发布时间】:2013-10-19 16:26:08
【问题描述】:

我正在使用 :target 选择器在 css3 中创建一个图像滑块。我有一个下一个和上一个按钮正在执行这行 javascript

window.location = "#image" + image;

问题是,如果我单击浏览器的后退按钮,它会显示滑块的上一个图像。我希望后退按钮转到上一页,而不是上一个锚点。

感谢您的帮助

【问题讨论】:

  • soooo,如果您不需要主题标签历史记录,为什么要更改 URL 的主题标签?
  • 嗯,最简单的方法就是停止更改 url,并找到另一种滑动图像的方法
  • 我同意这一点,我可能会将其更改为 jquery 滑块而不是 css3

标签: javascript html css


【解决方案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避免浏览器历史记录。
    • 我也不这么认为,我可能会改变整个事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    相关资源
    最近更新 更多