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.