HTML5 history.pushStatetarayıcı geçmişini değiştirmeye başladığı için, web siteleri bunu URL'nin parça tanımlayıcısını değiştirmek yerine Ajax ile birlikte kullanmaya başlar.
Ne yazık ki, bu çağrılar artık tespit edilemez anlamına gelir onhashchange.
Sorum şu: Bir web sitesinin ne zaman kullanıldığını tespit etmenin güvenilir bir yolu var mı (hack?;)) history.pushState? Spesifikasyon, ortaya çıkan olaylar hakkında hiçbir şey ifade etmiyor (en azından hiçbir şey bulamadım).
Bir cephe oluşturmaya çalıştım ve window.historykendi JavaScript nesnesimle değiştirdim , ancak hiçbir etkisi olmadı.
Daha fazla açıklama: Bu değişiklikleri algılayıp buna göre hareket etmesi gereken bir Firefox eklentisi geliştiriyorum.
Birkaç gün önce bazı DOM etkinliklerini dinlemenin etkili olup olmayacağını soran benzer bir soru olduğunu biliyorum, ancak buna güvenmemeyi tercih ederim çünkü bu olaylar çok farklı nedenlerle oluşturulabilir.
Güncelleme:
İşte bir jsfiddle (Firefox 4 veya Chrome 8 kullanın) çağrıldığında onpopstatetetiklenmeyen pushState(veya yanlış bir şey mi yapıyorum? Geliştirmek için çekinmeyin!)
Güncelleme 2:
Başka bir (yan) sorunu window.locationkullanırken güncellenmez pushState(ama ben zaten burada SO düşünüyorum bence).
historynesneyi değiştirdiğinizi söylediniz . Bu durumda bu gereksiz olabilir.