2010-09-16 4 views
136

Qualcuno sa se Internet Explorer supporta i metodi history.pushState() e history.replaceState() per manipulating browser history? Considerando che questi sono appena stati implementati in Firefox 4, non sto trattenendo il respiro, ma qualcuno sa se arriveranno in IE9?Internet Explorer supporta pushState e replaceState?

+18

Per quello che vale [History.js] (https://github.com/balupton/History.js) fornisce la stessa API HTML5 mentre discretamente degrada qualsiasi browser che non lo supporta (incluso il supporto per dati e titoli e replaceState). L'utilizzo di questo significherebbe che non si dovrà modificare il codice per le modifiche di IE9. – balupton

+3

Deprimendo effettivamente se IE9 non lo aggiunge. –

+0

@balupton Grazie per aver creato History.js. Rende il mondo un posto migliore. –

risposta

192

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

Sommario - IE9: no, IE10: sì (come di Platform Preview 3)

La prima Release Candidate di IE9 (uscito 10 febbraio 2011) non supporta history.pushState o history.replaceState . Generalmente non vengono aggiunte nuove funzionalità dopo che un prodotto arriva allo stage RC, quindi è molto improbabile che l'IE9 finale supporti questi metodi.

Microsoft ha un buon overview for developers delle caratteristiche di IE9.

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

Aggiornamento 2: l'anteprima della piattaforma corrente di IE10 still does not support pushState/replaceState.

Aggiornamento 3: Anteprima piattaforma 3 di IE10 supporta l'API di cronologia!Details

+0

+1 per riferimento a caniuse> non visto quel sito prima. Grazie! – gelviis

+0

Ad oggi, la cronologia di IE10 ha un ** bug ** che lo rende inutile, l'evento popstate non viene attivato. Dettagli qui: http://stackoverflow.com/questions/14698299/internet-explorer-10-and-popstate-not-binding/15809188#15809188 – citykid

16

IE9 non lo supporta.

È tuttavia possibile utilizzare una soluzione utilizzando Polyfill per ottenere la funzionalità - History.js https://github.com/browserstate/history.js.

Modernizr fare un buon lavoro inserendo HTML 5 Polyfills qui https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills.

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

+3

IE10 lo supporterà. Aggiornamento –

+2

per googlers, IE10 lo supporta. – xdumaine

+0

come i commenti nella domanda precedente, popstate non viene attivato in IE10 –

0

Btw si può ottenere tale errore in ragione del percorso assoluto in pushState(). Quando ho impostato il relativo errore di percorso era scomparso.