Internet Explorer pushState ve replaceState'i destekliyor mu?


140

Internet Explorer'ın tarayıcı geçmişini değiştirmek için history.pushState()ve history.replaceState()yöntemleri destekleyip desteklemediğini bilen var mı ? Bunların sadece Firefox 4'te uygulandığını düşünürsek, nefesimi tutmuyorum, ancak IE9'a gelip gelmediklerini bilen var mı?


3
IE9 bunu eklemezse gerçekten iç karartıcı.
Eric Wahlforss

18
Buna değecek bir şey varsa, History.js aynı HTML5 API'sini desteklemez ve desteklemeyen tarayıcıları (veri ve başlık desteği ve replaceState işlevselliği dahil) incelikle indirir. Bunu kullanmak IE9 değişiklikleri için kodunuzu değiştirmek zorunda kalmayacağınız anlamına gelir.
balupton

2
Öte yandan, bazıları karmalara düşmeye karşı çıkıyor. danwebb.net/2011/5/28/it-is-about-the-hashbangs
David Johnstone

1
@CHiRiLo: Sen bir başvuru eklemeniz gerekir jQuery . Bu, Google'dan yaygın olarak kullanılan bir javascript kütüphanesidir ve web sitelerinizde javascript ile çalışırken hayatınızı çok daha kolay hale getirecektir.
huşu

5
Google, jQuery için birincil geliştirici değildir (katkıda bulunmuş olabilir); gerçi onun CDN barındırır.
trojjer

Yanıtlar:


196

Muhtemelen tarayıcı uyumluluk bilgileri için en iyi site CanIUse'dir . İşte tarih bölümü .

Özet - IE9: hayır , IE10: evet (platform önizleme 3 itibariyle)

IE9'un ilk Sürüm Adayı (10 Şubat 2011'de yayınlandı) history.pushState veya history.replaceState öğesini desteklemez. Genellikle bir ürün RC aşamasına ulaştıktan sonra hiçbir yeni özellik eklenmez, bu nedenle nihai IE9'un bu yöntemleri desteklemesi pek olası değildir.

Microsoft, IE9'un sahip olduğu özelliklerin geliştiricileri için iyi bir genel bakışa sahiptir.

Güncelleme: Internet Explorer 9 başlatıldı (14 Mart 2011) ve kesinlikle veya desteklemiyor .history.pushState()history.replaceState()

Güncelleme 2: IE10'un mevcut platform önizlemesi hala pushState / replaceState'i desteklemiyor .

Güncelleme 3: IE10'un Platform Önizlemesi 3 , geçmiş API'sını destekler! ayrıntılar


Bugün itibariyle, IE10 geçmişinin işe yaramaz hale getirdiği bir hata var, popstate olayı tetiklenmiyor . Ayrıntılar burada: stackoverflow.com/questions/14698299/…
citykid

17

IE9 desteklemiyor.

Bununla birlikte, Poly.js'yi kullanarak geçici bir çözüm kullanabilirsiniz - History.js https://github.com/browserstate/history.js .

Modernizr burada HTML 5 Çoklu Dolgular listelemek iyi bir iş yapmak https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills .

Uyarı, yalnızca HTML 4 özelliklerini destekleyen tarayıcılarda URL'nize bir sorgu dizesi ekleyeceğidir.


Yukarıdaki soruya göre, IE10'da popstate ateş etmiyor
Mandeep Jain

IE 9 veya daha azını desteklemeniz gerekiyorsa History.js iyi bir çözümdür, ancak küçültülmüş 23KB'dir. Bu sadece birkaç yöntemi desteklemek için çok fazla.
Neil Monroe


0

Btw, pushState () içindeki mutlak yol nedeniyle böyle bir hata alabilirsiniz. Ben göreceli yolu ayarladığınızda hata ortadan kayboldu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.