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