2010-09-16 7 views
136

¿Alguien sabe si Internet Explorer admite los métodos history.pushState() y history.replaceState() para manipulating browser history? Teniendo en cuenta que estos solo se están implementando en Firefox 4, no estoy conteniendo la respiración, pero ¿alguien sabe si vendrán en IE9?¿Internet Explorer es compatible con pushState y replaceState?

+18

Por lo que vale [History.js] (https://github.com/balupton/History.js) proporciona la misma API de HTML5 al degradar con gracia cualquier navegador que no lo admita (incluido el soporte de datos y títulos) y reemplazar funcionalidad de estado). Usar eso significaría que no tendría que cambiar su código para los cambios de IE9. – balupton

+3

Deprimiendo de hecho si IE9 no agrega esto. –

+0

@balupton Gracias por hacer History.js. Hace que el mundo sea un lugar mejor. –

Respuesta

192

Probablemente el mejor sitio para la información de compatibilidad del navegador es CanIUse. Aquí está la sección en history.

Resumen - IE9: no, IE10: sí (a partir de previsualización plataforma 3)

La primera Release Candidate de IE9 (lanzado decimo feb 2011) no es compatible con history.pushState o history.replaceState . En general, no se agregan nuevas funciones después de que un producto llega a la etapa RC, por lo que es muy poco probable que el IE9 final admita estos métodos.

Microsoft tiene una buena overview for developers de las características que tiene IE9.

Actualización: Internet Explorer 9 fue lanzado (el 14 de marzo de 2011) y, definitivamente, no es compatible con history.pushState() o history.replaceState().

Actualización 2: La vista previa de la plataforma actual de IE10 still does not support pushState/replaceState.

Actualización 3: La vista previa de plataforma 3 de IE10 es compatible con la API de historial.Details

+0

+1 para referencia a caniuse> no visto ese sitio antes. ¡Gracias! – gelviis

+0

A partir de hoy, la historia de IE10 tiene un ** error ** que lo hace inútil, el evento popstate no se dispara. Detalles aquí: http://stackoverflow.com/questions/14698299/internet-explorer-10-and-popstate-not-binding/15809188#15809188 – citykid

16

IE9 no lo admite.

Sin embargo, puede utilizar una solución utilizando un Polyfill para obtener la funcionalidad - History.js https://github.com/browserstate/history.js.

Modernizr haga un buen trabajo enlistar HTML 5 Polyfills aquí https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills.

La advertencia es que agregará una cadena de consulta a su URL en los navegadores que solo son compatibles con las características de HTML 4.

+3

IE10 lo admitirá. –

+2

Actualización para googlers, IE10 no lo admite. – xdumaine

+0

a partir de los comentarios en la pregunta anterior, popstate no se activa en IE10 –

0

Por cierto que se puede obtener dicho error en la razón de la ruta absoluta en pushState(). Cuando establecí el error de ruta relativa desapareció.

Cuestiones relacionadas