jQuery memiliki plugin yang bagus untuk mengubah URL browser, yang disebut jQuery-pusher .
JavaScript pushState
dan jQuery dapat digunakan bersama, seperti:
history.pushState(null, null, $(this).attr('href'));
Contoh:
$('a').click(function (event) {
// Prevent default click action
event.preventDefault();
// Detect if pushState is available
if(history.pushState) {
history.pushState(null, null, $(this).attr('href'));
}
return false;
});
Hanya menggunakan JavaScript history.pushState()
, yang mengubah pengarah, yang digunakan di header HTTP untuk objek XMLHttpRequest yang dibuat setelah Anda mengubah status.
Contoh:
window.history.pushState("object", "Your New Title", "/new-url");
Metode pushState ():
pushState()
mengambil tiga parameter: objek keadaan, judul (yang saat ini diabaikan), dan (opsional) URL. Mari kita periksa masing-masing dari ketiga parameter ini secara lebih rinci:
state object - Objek state adalah objek JavaScript yang dikaitkan dengan entri riwayat baru yang dibuat oleh pushState()
. Setiap kali pengguna menavigasi ke negara baru, acara popstate dipecat, dan properti negara acara berisi salinan objek negara entri sejarah.
Objek state dapat berupa apa saja yang dapat diserialisasi. Karena Firefox menyimpan objek negara ke disk pengguna sehingga dapat dipulihkan setelah pengguna me-restart browser-nya, kami memaksakan batas ukuran 640k karakter pada representasi serial objek negara. Jika Anda melewatkan objek negara yang representasi bersambung lebih besar dari ini pushState()
, metode akan mengeluarkan pengecualian. Jika Anda membutuhkan lebih banyak ruang daripada ini, Anda dianjurkan untuk menggunakan sessionStorage dan / atau localStorage.
title - Firefox saat ini mengabaikan parameter ini, meskipun mungkin menggunakannya di masa depan. Melewati string kosong di sini harus aman terhadap perubahan metode di masa mendatang. Atau, Anda bisa memberikan judul pendek untuk status yang Anda pindahkan.
URL - URL entri riwayat baru diberikan oleh parameter ini. Perhatikan bahwa browser tidak akan mencoba memuat URL ini setelah panggilan ke pushState()
, tetapi mungkin berusaha memuat URL nanti, misalnya setelah pengguna me-restart browser-nya. URL baru tidak harus mutlak; jika itu relatif, itu diselesaikan relatif terhadap URL saat ini. URL baru harus memiliki asal yang sama dengan URL saat ini; jika tidak, pushState()
akan melempar pengecualian. Parameter ini opsional; jika tidak ditentukan, itu diatur ke URL dokumen saat ini.