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;      }  };

For a more in-depth look at manipulating browser history see this MDN article.

No comments:

Post a Comment