How to force a page to reload if all what was changed in url is hash?

hash, javascript, location, reload, url

Solution

Remove the anchor you're going to navigate to, then use approach #2? Since there's no anchor, setting the hash shouldn't scroll the page.

Problem

I am trying to reload current page with different url hash, but it doesn't work as expected. (Clarification how I want it to work: Reload the page and then scroll to the new hash.) Approach #1: ``` window.location.hash = "#" + newhash; ``` Only scrolls to this anchor without reloading the page. Approach #2: ``` window.location.hash = "#" + newhash; window.location.reload(true); ``` Kinda works but it first scrolls to the anchor, then reloads the page, then scrolls to the anchor again. Approach #3: ``` window.location.href = window.location.pathname + window.location.search + "&random=" + Math.round(Math.random()*100000) + "#" + newhash; ``` Works but I would rather not add random garbage to the url. Is there a better solution?

Original source