72

Me pregunto cómo evitar que las personas que usan IE 8 vayan al modo de compatibilidad?Cómo deshabilitar Vista de compatibilidad en IE

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

me encontré con esta etiqueta y creo que esto obliga a las personas a permanecer en el modo IE-8 pero no estoy muy seguro y no se puede comprobar como tengo IE 9.

Si la gente está en el IE Modo 9 ¿Los obligo a no entrar en el modo de compatibilidad IE 8 o IE 7?

traté de poner la línea anterior en mi código y fueron a IE 9 -> Herramientas -> Vista de compatibilidad (en gris)

pero "Configuración de Vista de compatibilidad" no estaba en gris y parece que podría añadir el sitio a través de allí.

Entonces, ¿no debería deshabilitar?

+15

@ Sparky672 - sí lo hago. No soporto IE 7 y mostrar un navegador es una advertencia desactualizada. Lo que descubrí a través de los estudios de usabilidad es que la mayoría de las personas no dicen que podrían estar en modo compatibilidad (y realmente no tienen conocimiento de cómo configurarlo) y cuando les dices que su navegador no está actualizado y creen que están usando IE 8 (último navegador en el momento del estudio) se confunden muy rápido. La mejor solución es obligarlos a volver a IE 8/9 (a lo que probablemente piensan que se están ejecutando de todos modos) – chobo2

Respuesta

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

debe obligar a su página a procesar en estándares IE8. El usuario puede agregar el sitio a la lista de compatibilidad, pero esta etiqueta tendrá prioridad.

Una forma rápida de comprobar sería para cargar la página y escriba lo siguiente la barra de direcciones:

javascript:alert(navigator.userAgent) 

Si ve IE7 en la cadena, que se está cargando en el modo de compatibilidad, de lo contrario no.

+2

¿Qué ocurre si al usar IE 9 esto los establece en IE 8? – chobo2

+1

Si el usuario lo está utilizando en IE9, lo mostrará en el modo de estándares IE8. También puede usar la barra de herramientas F12 Developer en IE9 para verificarlo. –

+0

Esta es la respuesta correcta. – EricLaw

0

Agregar una etiqueta a su página no controlará la interfaz de usuario en el Panel de control de Internet (el cuadro de diálogo que aparece cuando selecciona Herramientas -> Opciones). Si está viendo su página de inicio, que podría ser google.com, msn.com, sobre: ​​blank o example.com, el Panel de control de Internet no tiene forma de saber cuál puede ser el contenido de su página y no se descargará. en el fondo.

Eche un vistazo a this document on MSDN que discutió el modo de compatibilidad y cómo desactivarlo para su sitio.

91

Todo lo que necesita es forzar la desactivación C.M. en IE - Sólo tienes que pegar este código (en IE9 y bajo cm se puede desactivar):

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" /> 

Fuente: http://twigstechtips.blogspot.com/2010/03/css-ie8-meta-tag-to-disable.html

+3

Esto me salvó con Twitter Bootstrap & IE Compatibility. FYI - Esto debe ser la PRIMERA metaetiqueta. –

+11

¿No es esto lo mismo que ? – eug

+4

tenga cuidado de no utilizar ningún comentario condicional antes de esta etiqueta. De lo contrario, no está funcionando! Encontré la sugerencia allí: http://stackoverflow.com/questions/3449286/force-ie-compatibility-mode-off-in-ie-using-tags#comment26890406_3449338 – abimelex

9

Si está utilizando ASP.NET MVC, encontré Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1") en un bloque de código de _Layout que funciona bastante bien:

@Code 
    Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1") 
End Code 
<!DOCTYPE html> 
everything else 
66

Esto debería ser suficiente para obligar a un usuario IE para dejar el modo de compatibilidad en cualquier versión IE:

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

Sin embargo, hay un par de advertencias uno debe ser consciente de:

  • La etiqueta meta se incluyan como la primera etiqueta bajo <head>. Solo la etiqueta <title> se puede colocar encima.

Si no lo hace, obtendrá un error en IE9 Herramientas de desarrollo: X-UA-Compatible META tag ignored because document mode is already finalized.

  • Si desea que esta marcado para validar, asegúrese de recordar a cerrar la etiqueta meta con un /> en lugar de solo >.

  • Comenzando con IE11, el modo de borde es el modo de documento preferido. Para admitir/habilitar eso, use la declaración de tipo de documento HTML5 <!doctype html>.

  • Si necesita admitir webfonts en IE7, asegúrese de utilizar <!DOCTYPE html>. Lo probé y descubrí que renderizar webfonts en IE7 no era muy confiable cuando usábamos <!doctype html>.

El uso de Google Chrome Frame es popular, pero por desgracia, va a ser abandonado en algún momento de este mes, enero de 2014.

<meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=1"> 

Amplia información relacionada here. La sugerencia de usarlo como la primera metaetiqueta se encuentra en una fuente previamente mencionada here, que se ha actualizado.

1

En JSF utilicé:

<h:head> 
    <f:facet name="first"> 
     <meta http-equiv="X-UA-Compatible" content="IE=EDGE" /> 
    </f:facet> 

    <!-- ... other meta tags ... --> 

</h:head> 
2

Otra forma de lograr esto en Apache es poniendo las siguientes líneas en .htaccess en la carpeta raíz de su sitio web (o en los ficheros de configuración de Apache).

BrowserMatch "MSIE" isIE 
BrowserMatch "Trident" isIE 
Header set X-UA-Compatible "IE=edge" env=isIE 

Esto requiere que tenga las mod_headers y mod_setenvif módulos habilitados.

El encabezado HTTP adicional solo se envía a los navegadores IE, y ninguno de los otros.

5

La respuesta dada por FelixFett funcionó para mí. Para reiterar:

<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" /> 

Lo tengo como la primera etiqueta 'meta' en mi código. Agregué 10 y 11 ya que esas son versiones que ahora se publican para Internet Explorer.

Me acabo comentado su respuesta, pero no tengo una reputación lo suficientemente alto ...

Cuestiones relacionadas