Here is how I did it. Only works in browsers that support HTML5 history api.
// store the current URL
current_url = window.location.href
// use replaceState to push a new entry into the browser's history
history.replaceState({},"",desired_url)
// use replaceState again to reset the URL
history.replaceState({},"",current_url)
Using replaceState means that the back button won’t be affected.