How can I replace a window's URL hash with another response?
You may prefer the answer of this question.
The difference being that with history.replaceState()
you don't scroll to the anchor, only replace it in the navigation bar. It's supported by all major browsers, source.
history.replaceState(undefined, undefined, "#hash_value")