Modify the URL without reloading the page
This can now be done in Chrome, Safari, FF4+, and IE10pp4+! Example: function processAjaxData ( response , urlPath ){ document . getElementById ( "content" ). innerHTML = response . html ; document . title = response . pageTitle ; window . history . pushState ({ "html" : response . html , "pageTitle" : response . pageTitle }, "" , urlPath ); } You can then use window.onpopstate to detect the back/forward button navigation: window . onpopstate = function ( e ){ if ( e . state ){ document . getElementById ( "content" ). innerHTML = e . state . html ; document . title = e . state . pageTitle ; } };