history.pushStateVerschiebt den aktuellen Seitenstatus auf den Verlaufsstapel und ändert die URL in der Adressleiste. Wenn Sie also zurückkehren, wird dieser Status (das Objekt, das Sie übergeben haben) an Sie zurückgegeben.
Derzeit ist das alles, was es tut. Alle anderen Seitenaktionen, z. B. das Anzeigen der neuen Seite oder das Ändern des Seitentitels, müssen von Ihnen ausgeführt werden.
Die von Ihnen verknüpfte W3C-Spezifikation ist nur ein Entwurf, und der Browser implementiert sie möglicherweise anders. Firefox beispielsweise ignoriert den titleParameter vollständig.
Hier ist ein einfaches Beispiel dafür pushState, das ich auf meiner Website verwende.
(function($){
// Use AJAX to load the page, and change the title
function loadPage(sel, p){
$(sel).load(p + ' #content', function(){
document.title = $('#pageData').data('title');
});
}
// When a link is clicked, use AJAX to load that page
// but use pushState to change the URL bar
$(document).on('click', 'a', function(e){
e.preventDefault();
history.pushState({page: this.href}, '', this.href);
loadPage('#frontPage', this.href);
});
// This event is triggered when you visit a page in the history
// like when yu push the "back" button
$(window).on('popstate', function(e){
loadPage('#frontPage', location.pathname);
console.log(e.originalEvent.state);
});
}(jQuery));