如何在不刷新页面的情况下使用JavaScript从window.Location(URL)中删除哈希

如何在不刷新页面的情况下使用JavaScript从window.Location(URL)中删除哈希

我的网址是:http://example.com#something,如何删除#something,而不会导致页面刷新?

我尝试了以下解决方案:

window.location.hash = '';

但是,这不会删除散列符号#从URL。


临摹微笑
浏览 1622回答 3
3回答

不负相思意

现在最好的解决办法是:history.replaceState(null, null, ' ');

绝地无双

初步问题:window.location.href.substr(0, window.location.href.indexOf('#'))或window.location.href.split('#')[0]两者都将返回URL,而不需要散列或之后的任何内容。关于您的编辑:任何改变window.location将触发页面刷新。你可以改变window.location.hash如果不触发刷新(但如果您的哈希与页面上的id匹配,则窗口将跳转),但是您无法去掉哈希符号。你选哪个更糟.。最最新的答案关于如何在不牺牲(要么完全重新加载,要么留下哈希号)的情况下,正确的答案是在这下面..将这个答案留在这里,在2009年是最初的答案,而使用新浏览器API的正确答案则是在1.5年后给出的。
打开App,查看更多内容
随时随地看视频慕课网APP