HTML5 history.pushState
tarayı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.history
kendi 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 onpopstate
tetiklenmeyen pushState
(veya yanlış bir şey mi yapıyorum? Geliştirmek için çekinmeyin!)
Güncelleme 2:
Başka bir (yan) sorunu window.location
kullanırken güncellenmez pushState
(ama ben zaten burada SO düşünüyorum bence).
history
nesneyi değiştirdiğinizi söylediniz . Bu durumda bu gereksiz olabilir.