After testing (test page) with browserling and browserstack, it seems that
- No browser reloads the page
- Some browsers don't replace the last item in back button list.
Specifically, my code works on
- Firefox: 3
- IE: 6
- Chrome: 6 (but not on 5)
- Safari: 5.0.5 (but not on 4.0)
- Opera: 12.10 (but not on 11.6)
And, according to IETester, it works on IE 5.5 too.
Edit - The following code also works (test page), with same browser support:
location.replace('#' + newHash);