Internet Explorer supporta pushState e replaceState?


140

Qualcuno sa se Internet Explorer supporta i metodi history.pushState()e history.replaceState()per manipolare la cronologia del browser ? Considerando che questi sono solo in fase di implementazione in Firefox 4, non sto trattenendo il respiro, ma qualcuno sa se stanno arrivando in IE9?


3
Deprimendo davvero se IE9 non aggiunge questo.
Eric Wahlforss,

18
Per quello che vale History.js fornisce la stessa API HTML5 mentre degrada con grazia qualsiasi browser che non la supporta (incluso il supporto per dati e titoli e la funzionalità di sostituzione dello Stato). Usarlo significherebbe che non dovresti cambiare il codice per le modifiche di IE9.
Balupton,

2
D'altra parte, alcuni discutono di non ricadere negli hash. danwebb.net/2011/5/28/it-is-about-the-hashbangs
David Johnstone

1
@CHiRiLo: è necessario includere un riferimento a jQuery . Questa è una libreria javascript di Google che è ampiamente utilizzata e renderà la tua vita molto più semplice quando lavori con javascript nei tuoi siti web.
timore

5
Google non è lo sviluppatore principale per jQuery (potrebbe aver contribuito); lo ospita sulla sua CDN però.
trojjer

Risposte:


196

Probabilmente il miglior sito per informazioni sulla compatibilità del browser è CanIUse . Ecco la sezione sulla storia .

Riepilogo - IE9: no , IE10: sì (dall'anteprima della piattaforma 3)

Il primo Release Candidate di IE9 (rilasciato il 10 febbraio 2011) non supporta history.pushState o history.replaceState. Generalmente non vengono aggiunte nuove funzionalità dopo che un prodotto è arrivato allo stadio RC, quindi è molto improbabile che l'IE9 finale supporti questi metodi.

Microsoft ha una buona panoramica per gli sviluppatori delle funzionalità di IE9.

Aggiornamento: Internet Explorer 9 è stato lanciato (il 14 marzo 2011) e sicuramente non supporta history.pushState()o history.replaceState().

Aggiornamento 2: l'attuale anteprima della piattaforma di IE10 non supporta ancora pushState / replaceState .

Aggiornamento 3: l'anteprima della piattaforma 3 di IE10 supporta l'API della cronologia! Dettagli


Ad oggi, la storia di IE10 ha un bug che la rende inutile, l'evento popstate non si attiva. Dettagli qui: stackoverflow.com/questions/14698299/...
citykid

17

IE9 non lo supporta.

Puoi comunque usare una soluzione usando un Polyfill per ottenere la funzionalità - History.js https://github.com/browserstate/history.js .

Modernizr fa un buon lavoro elencando i Polyfill HTML 5 qui https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills .

L'avvertenza è che aggiungerà una stringa di query al tuo URL nei browser che supportano solo le funzionalità HTML 4.


a partire dai commenti nella domanda sopra, popstate non spara in IE10
Mandeep Jain,

History.js è una buona soluzione se devi supportare IE 9 o versioni precedenti, ma è 23 KB, minimizzato. Questo è molto per il solo supporto di alcuni metodi.
Neil Monroe,


0

A proposito, puoi ottenere questo errore in ragione del percorso assoluto in pushState (). Quando ho impostato l'errore relativo percorso è scomparso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.