jQuery , jQuery-itici adı verilen tarayıcı URL'sini değiştirmek için harika bir eklentiye sahiptir .
JavaScript pushState
ve jQuery birlikte kullanılabilir, örneğin:
history.pushState(null, null, $(this).attr('href'));
Misal:
$('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;
});
Durumu değiştirdikten sonra oluşturulan XMLHttpRequest nesneleri için HTTP üstbilgisinde kullanılan yönlendireni değiştiren yalnızca JavaScript'i kullanma history.pushState()
.
Misal:
window.history.pushState("object", "Your New Title", "/new-url");
PushState () yöntemi:
pushState()
üç parametre alır: bir durum nesnesi, bir başlık (şu anda yoksayılır) ve (isteğe bağlı olarak) bir URL. Bu üç parametrenin her birini daha ayrıntılı olarak inceleyelim:
state nesnesi - state nesnesi, tarafından oluşturulan yeni geçmiş girdisiyle ilişkilendirilmiş bir JavaScript nesnesidir pushState()
. Kullanıcı yeni duruma her gittiğinde, bir popstate olayı tetiklenir ve olayın state özelliği geçmiş girdisinin durum nesnesinin bir kopyasını içerir.
Durum nesnesi serileştirilebilen herhangi bir şey olabilir. Firefox, durum tarayıcılarını kullanıcının diskine kaydettiğinden, kullanıcı tarayıcısını yeniden başlattıktan sonra geri yüklenebilmeleri için, bir durum nesnesinin serileştirilmiş gösterimine 640 bin karakter boyut sınırı koyarız. Serileştirilmiş temsili bundan daha büyük olan bir durum nesnesini iletirseniz pushState()
, yöntem bir istisna atar. Bundan daha fazla alana ihtiyacınız varsa sessionStorage ve / veya localStorage kullanmanız önerilir.
title - Firefox şu anda bu parametreyi yok sayar, ancak gelecekte de kullanabilir. Boş dizeyi buraya iletmek, yöntemde yapılacak değişikliklere karşı güvenli olmalıdır. Alternatif olarak, taşındığınız eyalet için kısa bir başlık da iletebilirsiniz.
URL - Yeni geçmiş girişinin URL'si bu parametre tarafından verilir. Tarayıcının bir çağrıdan sonra bu URL'yi yüklemeyi denemeyeceğini pushState()
, ancak örneğin kullanıcı tarayıcısını yeniden başlattıktan sonra URL'yi daha sonra yüklemeyi deneyebileceğini unutmayın. Yeni URL'nin mutlak olması gerekmez; göreli ise, geçerli URL'ye göre çözülür. Yeni URL, mevcut URL ile aynı kaynaktan olmalıdır; aksi takdirde pushState()
bir istisna atar. Bu parametre isteğe bağlıdır; belirtilmezse, belgenin geçerli URL'sine ayarlanır.