Apakah Internet Explorer mendukung pushState dan replaceState?

140

Adakah yang tahu jika Internet Explorer mendukung history.pushState()dan history.replaceState()metode untuk memanipulasi riwayat browser ? Mengingat ini baru saja diterapkan di Firefox 4, saya tidak menahan nafas, tetapi apakah ada yang tahu jika mereka datang di IE9?

David Johnstone
sumber
3
Memang menyedihkan jika IE9 tidak menambahkan ini.
Eric Wahlforss
18
Untuk apa itu layak History.js menyediakan API HTML5 yang sama dengan anggun merendahkan browser apa pun yang tidak mendukungnya (termasuk dukungan untuk data dan judul, dan fungsi penggantiState). Menggunakan itu berarti Anda tidak perlu mengubah kode Anda untuk perubahan IE9.
balupton
2
Di sisi lain, beberapa orang berpendapat agar tidak kembali ke hash. danwebb.net/2011/5/5/28/it-is-about-the-hashbangs
David Johnstone
1
@ CHiRiLo: Anda harus menyertakan referensi ke jQuery . Ini adalah pustaka javascript dari Google yang banyak digunakan, dan akan membuat hidup Anda jauh lebih mudah ketika bekerja dengan javascript di situs web Anda.
awe
5
Google bukan pengembang utama untuk jQuery (mungkin berkontribusi); ia menyimpannya di CDN-nya.
trojjer

Jawaban:

196

Mungkin situs terbaik untuk informasi kompatibilitas browser adalah CanIUse . Inilah bagian tentang sejarah .

Ringkasan - IE9: tidak , IE10: ya (pada pratinjau platform 3)

Kandidat Rilis pertama dari IE9 (dirilis 10 Februari 2011) tidak mendukung history.pushState atau history.replaceState. Umumnya tidak ada fitur baru yang ditambahkan setelah produk sampai ke tahap RC sehingga sangat tidak mungkin bahwa IE9 akhir akan mendukung metode ini.

Microsoft memiliki tinjauan yang baik untuk pengembang tentang fitur yang dimiliki IE9.

Pembaruan: Internet Explorer 9 diluncurkan (pada 14 Maret 2011) dan jelas tidak mendukung history.pushState()atau history.replaceState().

Pembaruan 2: Pratinjau platform saat ini dari IE10 masih tidak mendukung pushState / replaceState .

Pembaruan 3: Platform Preview 3 dari IE10 mendukung API riwayat! Detail

dave1010
sumber
Sampai hari ini, sejarah IE10 memiliki bug membuatnya tidak berguna, acara popstate tidak menyala. Detail di sini: stackoverflow.com/questions/14698299/…
citykid
17

IE9 tidak mendukungnya.

Namun Anda dapat menggunakan pekerjaan menggunakan Polyfill untuk mendapatkan fungsionalitas - History.js https://github.com/browserstate/history.js .

Modernizr melakukan pekerjaan yang baik dengan mendaftar Polyfills HTML 5 di sini https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills .

Peringatannya adalah bahwa ia akan menambahkan string kueri ke URL Anda di browser yang hanya mendukung fitur HTML 4.

Sebastian Patten
sumber
pada komentar di pertanyaan di atas, popstate tidak menyala di IE10
Mandeep Jain
History.js adalah solusi yang baik jika Anda harus mendukung IE 9 atau lebih rendah, tetapi 23KB, diperkecil. Itu banyak untuk hanya mendukung beberapa metode.
Neil Monroe
0

Btw Anda bisa mendapatkan kesalahan seperti itu karena path absolut di pushState (). Ketika saya mengatur kesalahan jalur relatif menghilang.

f0rmat1k
sumber