How to remove the hash from [removed] (URL) with JavaScript without page refresh?

前端 未结 16 3077
无人及你
无人及你 2020-11-22 02:53

I have URL like: http://example.com#something, how do I remove #something, without causing the page to refresh?

I attempted the following

16条回答
  •  遥遥无期
    2020-11-22 03:13

    Initial question:

    window.location.href.substr(0, window.location.href.indexOf('#'))
    

    or

    window.location.href.split('#')[0]
    

    both will return the URL without the hash or anything after it.

    With regards to your edit:

    Any change to window.location will trigger a page refresh. You can change window.location.hash without triggering the refresh (though the window will jump if your hash matches an id on the page), but you can't get rid of the hash sign. Take your pick for which is worse...

    MOST UP-TO-DATE ANSWER

    The right answer on how to do it without sacrificing (either full reload or leaving the hash sign there) is down here. Leaving this answer here though with respect to being the original one in 2009 whereas the correct one which leverages new browser APIs was given 1.5 years later.

提交回复
热议问题