Updating address bar with new URL without hash or reloading the page

Updating address bar with new URL without hash or reloading the pageĀ example:

 

You can then use window.onpopstate to detect the back/forward button navigation: