清除URL哈希

Ran*_*lue 30 html javascript url-routing window.location

访问stackoverflow.com/#_=_window.location.hash评估#_=_.精细.

现在执行window.location.hash = ''清除哈希,URL变为stackoverflow.com/#.(请注意尾随#.)

为什么#window.location.hash不一致包含或排除?如何在#不重新加载页面的情况下从URL中删除?

(MDN

[哈希]是#符号后面的URL的一部分,包括#符号.

但在空哈希的情况下,情况并非如此.)

Ran*_*lue 57

要回答第二个问题(删除#没有页面刷新):

history.pushState('', document.title, window.location.pathname);
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢`replaceState`来实现这一点. (4认同)
  • 注意:pushState是IE10及以上版本. (3认同)
  • IE9有什么解决方案吗?我试过`window.location.href.replace(/#.*/,"");`但它重新加载页面. (2认同)