我有以下网址:http://example.com#something,如何删除#something而不导致页面刷新?
http://example.com#something
#something
我尝试了以下解决方案:
window.location.hash = '';
但是,这不会#从URL中删除哈希符号。
#
最初的问题:
window.location.href.substr(0, window.location.href.indexOf('#'))
要么
window.location.href.split('#')[0]
两者都将返回不带哈希或其后的任何内容的URL。
关于您的编辑:
对的任何更改window.location都会触发页面刷新。您可以在window.location.hash不触发刷新的情况下进行更改(尽管如果您的哈希值与页面上的ID匹配,则窗口将跳出),但是您无法摆脱哈希符号。选哪个更差…
window.location
window.location.hash
最新的答案
在不牺牲(完全重新加载或在其中保留哈希符号)的情况下正确执行操作的正确答案就在这里。不过,就2009年的原始版本而言,此答案留在这里,而1.5年后才给出了利用新浏览器API的正确版本。