让浏览器在单击“后退”按钮时忽略URL哈希值

6

2
你需要阻止他最初点击到#comments的那个事件,可能需要使用preventDefault()函数,并使用jQuery来滚动到该位置。否则,这一切都将成为正常历史记录的一部分。 - Sparky
1个回答

12

而不是像这样有一个链接:

<a href='#comments'>Link</a>

使用 location.replace() 可以在浏览器历史记录中“覆盖”http://example.com的记录。

https://developer.mozilla.org/en/DOM/window.location

示例:

HTML:

<a id='commentsLink'>Link</a>

JavaScript:

$("#commentsLink").click(function(){
    window.location.replace("#comments");
});

4
不要使用w3schools... http://w3fools.com (关于window.location信息的替代链接:https://developer.mozilla.org/en/DOM/window.location) - Platinum Azure
@Platinum Azure - 我在发布链接时也想到了这点,但是我的懒散占据了上风。感谢你纠正我 :) - Chris Laplante
1
感谢您真正修复它。为您的麻烦加1 :-) - Platinum Azure
这次你赢了,我会尽快更改我的投票(如果我可以的话,我并不完全知道SO的工作方式)。很抱歉删除了我的先前评论,但我不想用我的胡言乱语降低读者的智商... - ajax333221
您只需点击赞同即可取消反对,除非SO已经决定锁定投票(在一定时间后会这样做)。 - Chris Laplante
@SimpleCoder 现在不可能了... 直到你编辑完成后才能解锁。 - ajax333221

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