history.pushStatemendorong status halaman saat ini ke tumpukan riwayat, dan mengubah URL di bilah alamat. Jadi, ketika Anda kembali, keadaan itu (objek yang Anda lewati) dikembalikan kepada Anda.
Saat ini, hanya itu yang dilakukannya. Tindakan halaman lainnya, seperti menampilkan halaman baru atau mengubah judul halaman, harus dilakukan oleh Anda.
W3C spec yang Anda tautkan hanyalah konsep, dan browser dapat menerapkannya secara berbeda. Firefox , misalnya, mengabaikan titleparameter sepenuhnya.
Berikut adalah contoh sederhana pushStateyang saya gunakan di situs web saya.
(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));