如何使用location.replace进行哈希

时间:2014-04-26 20:22:24

标签: javascript html

我正在尝试重定向用户而不重新加载页面。因此,如果用户点击<a href="#link1">,则应重定向到#link2

问题是,如果我使用location.hash="link2",它会在历史记录中添加2个条目,这是我不想要的,因为当用户点击后退按钮时,它会转到{{1} },然后重定向到link1,这样用户基本上无法在不打开已访问页面列表的情况下返回。

如果我使用link2,它会从服务器重新加载整个页面,我也不想要。

是否有人可以在不添加新历史记录条目的情况下重定向用户?

我不想使用location.replace,因为它与不支持HTML5的浏览器具有向后兼容性。 我也不想使用像replaceState这样的内容,以便用户可以在浏览器中为链接添加书签,并且它的工作方式也一样。

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找window.history.replaceState

答案 1 :(得分:0)

您也可以使用JavaScript和jQuery处理onclick事件,并在不触发浏览器的情况下滚动到锚点。 Here is an example 使用jQuery的 .animate() 功能实现流畅滚动