2012-05-04 13 views
13

Recientemente he descubierto el placer de añadir lo siguiente en la cabecera de los sitios:Uso de <meta http-equiv = "X-UA-compatible" contenido = "IE = 8" /> modo en sitios buena práctica?

<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

los sitios web sólo trabajo, CSS es hermoso y la vida es buena. Pero estoy un poco preocupado acerca de cuán buena es esta práctica?

¿Qué tal una computadora realmente vieja que tiene IE7 instalado? ¿Puede esa versión de IE7 acceder al modo de estándares IE8?

Respuesta

23

La respuesta breve a la última parte de su pregunta es no: IE7 no se puede hacer funcionar en modo IE8. Por lo tanto, usar el encabezado X-UA-Compatible no obligará a las versiones anteriores de IE a pensar que son una versión más nueva. (Si es que funcionó, todos podríamos acaba de empezar a utilizar content="IE-10" y acabar de preocuparse por la compatibilidad hacia atrás para siempre)

Lo que la bandera X-UA-Compatible hace es decirle a las nuevas versiones de IE para volver a caer en el modo de compatibilidad para emular versiones anteriores. Por lo tanto, su indicador content="IE-8" no tendrá ningún efecto en IE7 o IE8, pero hará que IE9 vuelva al modo IE8.

Esto significa que IE9 eliminará efectivamente sus características más nuevas, a fin de intentar ser compatible con versiones anteriores.

Si esto es lo que quiere de IE9, entonces use el encabezado X-UA-Compatible. Si no es lo que quieres, entonces no lo uses.

(vale la pena señalar que los modos de compatibilidad con versiones anteriores en IE no son muy buenos para ser 100% compatibles con las copias reales de la versión que intentan emular, así que no creas que obtendrás una copia perfecta de IE8 ejecutándose en IE9 cualquiera - tendrá sus propios caprichos que son diferentes a IE8 o IE9 en modo normal)

+0

Excelente respuesta y usted ha resuelto mi falta de comprensión. Y ahora me siento un poco tonto :) Así que es por compatibilidad hacia atrás :) ¡Gracias! :) – Nadine

+1

Esto es parcialmente incorrecto. Si bien forzará un modo de compatibilidad hacia atrás para versiones futuras; también forzará la compatibilidad actual (que el cliente puede sobrepasar) para IE8. Por ejemplo, si una política de grupo dice usar vista de compatibilidad para todos los sitios de intranet, usar esta etiqueta (ya sea como un encabezado real o incrustado en el html) indicará a IE que ignore el GP ya que este sitio ha sido suficientemente probado en la versión establecida. La última parte, sin embargo es cierta, habrá peculiaridades independientemente de si está procesando en la última versión de IE o en una versión específica sin las pruebas adecuadas. – Colton

+0

Gracias Sparksis, eso era lo que estaba buscando. Noté que mi sitio volvía aleatoriamente al modo IE7 (mientras navegaba en IE8), lo que hacía que resultara divertido. usar content = "IE-8" solucionó este problema. –

2

Otra cosa a tener en cuenta es que los ejemplos de etiquetas de Microsoft han proporcionado don ' siempre funciona lea defining document compatibility, especialmente las adiciones de la comunidad en la parte inferior de la página.

En cuanto a la mejor práctica, probablemente no sea la mejor solución a largo plazo, pero fue muy útil cuando se lanzó IE9 y los sitios se cayeron.

0

Tengo IE8 instalado en un entorno de prueba de Windows 7 y muestra algunas partes de mi código como IE7 antes (no hay content = "IE7" en mis meta-tags)!
En otra máquina con Windows 7 + IE8, el código se procesa de manera diferente, pero como yo quiero.
Hay un artículo interesante en http://www.greywyvern.com/?post=313 que dice que la forma en que rinde IE8 depende del Service Pack instalado en el sistema (el artículo trata sobre XP, pero el mío es Windows 7 y tengo el mismo problema).

Así que ahora pongo content = "IE10" en mis páginas web y mi sitio web se muestra correctamente en IE10, IE9 e IE8.

0

Estoy usando Discus, no es compatible con versiones anteriores de IE. Recibí ayuda que dijeron usar content = "IE-8" en mi código de página ...

content = "IE-8" también le dije a mi navegador que cambiara el tamaño de las tablas y textos, etc: p Cambié a content = "IE-7" funciona perfecto.

0

Agregar el modo <meta http-equiv=“X-UA-Compatible” content=“IE=8” /> probablemente no sea una buena idea, ya que detendrá su aplicación para aprovechar las versiones más nuevas del navegador. Pero creo que agregar <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> es bueno ya que obliga al navegador a renderizar a los estándares de la versión más reciente.

Nota: Agregar Edge puede potencialmente romper su código ya que es posible que su aplicación no se pruebe para esta nueva versión. En la mayoría de los casos, esto funciona absolutamente bien, pero nunca se sabe.

Para obtener información sobre otras opciones posibles se refieren

“X-UA-Compatible” content=“IE=9; IE=8; IE=7; IE=EDGE”

0

Compatibilidad hacia atrás dicho tan justamente por todo el mundo debería ser aplicada sólo cuando es estrictamente necesario, ya que no funciona perfectamente, y no usted no puede obtener la características del nuevo navegador al viejo navegador simplemente agregando la etiqueta de compatibilidad.

Cuestiones relacionadas