我正在尝试重定向用户而不重新加载页面。因此,如果用户点击<a href="#link1">
,则应重定向到#link2
。
问题是,如果我使用location.hash="link2"
,它会在历史记录中添加2个条目,这是我不想要的,因为当用户点击后退按钮时,它会转到{{1} },然后重定向到link1
,这样用户基本上无法在不打开已访问页面列表的情况下返回。
如果我使用link2
,它会从服务器重新加载整个页面,我也不想要。
是否有人可以在不添加新历史记录条目的情况下重定向用户?
我不想使用location.replace
,因为它与不支持HTML5的浏览器具有向后兼容性。
我也不想使用像replaceState
这样的内容,以便用户可以在浏览器中为链接添加书签,并且它的工作方式也一样。
答案 0 :(得分:1)
我认为你正在寻找window.history.replaceState。
答案 1 :(得分:0)
您也可以使用JavaScript和jQuery处理onclick事件,并在不触发浏览器的情况下滚动到锚点。 Here is an example 使用jQuery的 .animate()
功能实现流畅滚动