tag opcion modo internet equiv emulador documento content compatible compatibilidad chrome internet-explorer ie8-compatibility-mode x-ua-compatible

internet explorer - opcion - X-UA-Compatible se establece en IE=edge, pero aún así no detiene el modo de compatibilidad



modo de documento emulador internet explorer (18)

Además, X-UA-Compatible debe ser la primera etiqueta meta en la sección de cabecera

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

Por cierto, el orden correcto o las etiquetas principales son:

<head> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta charset="utf-8"> <title>Site Title</title> <!-- other tags --> </head>

De esta manera

  1. configuramos el motor de renderización para que se utilice antes de que IExplorer comience a procesarse
  2. El documento luego configuramos la codificación para usar para todos los navegadores.
  3. luego imprimimos el título, que se procesará con la codificación ya definida.

Estoy bastante confundido. Debería ser capaz de establecer

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

e IE8 e IE9 deberían representar la página utilizando el último motor de renderizado. Sin embargo, acabo de probarlo, y si el Modo de compatibilidad está activado en otro lugar de nuestro sitio, permanecerá en nuestra página , aunque deberíamos obligarlo a no hacerlo.

¿Cómo se supone que debe asegurarse de que IE no use el Modo de compatibilidad (incluso en una intranet)?

FWIW, estoy utilizando la declaración DocType HTML5 ( <!doctype html> ).

Aquí están las primeras líneas de la página:

<!doctype html> <!--[if lt IE 7 ]> <html lang="en" class="innerpage no-js ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="innerpage no-js ie7"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="innerpage no-js ie8"> <![endif]--> <!--[if (gte IE 9)|!(IE)]><!--> <html lang="en" class="innerpage no-js"> <!--<![endif]--> <head> <meta charset="ISO-8859-1" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />

EDITAR: Acabo de enterarme de que la configuración predeterminada en IE8 es usar el modo de compatibilidad de IE7 para los sitios de intranet. ¿Anularía esto la metaetiqueta compatible con X-UA?


Agregué lo siguiente a mi archivo htaccess, que hizo el truco:

BrowserMatch MSIE ie Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie


Como NEOSWF señala arriba, los comentarios condicionales de Paul Irish detienen la etiqueta meta que tiene algún efecto.

Hay varios arreglos todos aquí ( http://nicolasgallagher.com/better-conditional-classnames-for-hack-free-css/ )

Éstos incluyen:

Agregar dos clases de HTML, usar encabezados de servidor y agregar un comentario condicional sobre el doctype.

En mi último proyecto decidí eliminar los comentarios condicionales de Paul Irish. No me gustó la idea de agregar nada antes del html sin hacer MUCHAS pruebas antes y es bueno ver lo que se ha configurado con solo mirar el HTML.

Al final, rodeé una división inmediatamente después del cuerpo y usé comentarios condicionales, por ejemplo,

<!--[if IE 7]><div class="ie7"><!--<![endif]--> ... regular body stuff <!--[if IE 7]></div><!--<![endif]-->

Podría haber hecho esto en todo el cuerpo, pero es más difícil con CMS como Wordpress.

Obviamente, es otro DIV dentro del marcado, pero es solo para navegadores antiguos.

Sin embargo, creo que podría ser una decisión por proyecto.

También he leído algo sobre la metaetiqueta charset que debe aparecer en los primeros 1024 bytes, así que esto se asegura.

A veces, las ideas más simples y fáciles de leer son las mejores y definitivamente vale la pena pensar en ellas. Gracias al sexto comentario en el enlace de arriba por señalar esto.


Cuando su navegador se abre con Modos de compatibilidad, incluso si elimina y desactiva la configuración de todos los modos de compatibilidad de su navegador web y el Editor de políticas de grupo local, puede intentar deshabilitar la clave de registro.

Esto también me sucedió al usar el dominio y el subdominio para conectar el servidor. La máquina está restringida para abrirse en modo de compatibilidad para todos los subdominios.

DESACTIVAR EL MODO DE COMPABILIDAD PARA INTRANET

HKEY_LOCAL_MACHINE - SOFTWARE - Políticas - Microsoft - Internet Explorer - BrowserEmulation -> IntranetCompalityMode El valor debe ser 0 (cero) . Y también eliminar el nombre de dominio existente de PolicyList.

De lo contrario, puede agregar un nuevo valor (DWORD) que contenga datos de valor 0 (cero) .


Estaba experimentando el mismo problema en IE11. Ninguna de estas respuestas resolvió mi problema. Después de cavar un poco, noté que el navegador se estaba ejecutando en modo Enterprise . (verifique presionando F12 y haga clic en la pestaña de emulación; busque el menú desplegable del perfil del navegador) La configuración se bloqueó, no permitiéndome cambiar la configuración.

Pude cambiar el perfil a Escritorio después de eliminar CurrentVersion de la siguiente clave de registro:

HKEY_CURRENT_USER/Software/Policies/Microsoft/Internet Explorer/Main/EnterpriseMode

Después de cambiar el modo a Escritorio, las respuestas en esta publicación funcionarán.


IE 11 ya no le permite anular la configuración de la vista de compatibilidad del navegador enviando el encabezado ...

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

Parece que la única manera de forzar al navegador a no usar la vista de compatibilidad es hacer que el usuario la desactive en su navegador. El nuestro es un sitio de Intranet, y la opción predeterminada de IE es usar la vista de compatibilidad para los sitios de Intranet. ¡Que dolor!

Pudimos evitar que el usuario cambie la configuración de su navegador para los usuarios de IE 9 y 10, pero ya no funciona en IE 11. Nuestros usuarios de IE están cambiando a Chrome, donde esto no es un problema, y ​​nunca lo ha hecho. estado.


Incluso si ha desactivado la opción "Mostrar sitios de intranet en la Vista de compatibilidad" y tiene la compatibilidad con X-UA en sus cabeceras de respuesta, hay otra razón por la que su navegador puede usar de forma predeterminada la "Vista de compatibilidad": su Política de grupo. Mira en tu consola el siguiente mensaje:

HTML1203: xxx.xxx se ha configurado para ejecutarse en Vista de compatibilidad a través de la Política de grupo.

Donde xxx.xxx es el dominio de su sitio (es decir, test.com). Si ve esto, la política de grupo para su dominio se establece de modo que cualquier sitio que termine en test.com se renderice automáticamente en el modo de compatibilidad independientemente del tipo de documento, encabezados, etc.

Para obtener más información, consulte el siguiente enlace (explica los códigos html): http://msdn.microsoft.com/en-us/library/ie/hh180764(v=vs.85).aspx



Pude evitar esto cargando los encabezados antes del HTML con php, y funcionó muy bien.

<?php header( ''X-UA-Compatible: IE=edge,chrome=1'' ); header( ''content: width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no'' ); include(''ix.html''); ?>

ix.html es el contenido que quería cargar después de enviar los encabezados.


Resulta que esto tiene que ver con la opción "inteligente" de Microsoft para hacer que todos los sitios de la intranet se ajusten al modo de compatibilidad, incluso si X-UA-Compatible está configurado en IE=edge .


Si está utilizando la pila LAMP, agregue esto en su archivo .htaccess en su carpeta raíz web. No es necesario agregarlo a todos los archivos PHP.

<IfModule mod_headers.c> Header add X-UA-Compatible "IE=Edge" </IfModule>


Si necesita anular la configuración de Vista de compatibilidad de IE para los sitios de intranet, puede hacerlo en web.config (IIS7) o mediante los encabezados HTTP personalizados en las propiedades del sitio web (IIS6) y configurar X-UA-Compatible allí. La metaetiqueta no anula la configuración de intranet de IE en la Configuración de vista de compatibilidad, pero si la configura en el servidor de alojamiento, anulará la compatibilidad.

Ejemplo para web.config en IIS7:

<system.webServer> <httpProtocol> <customHeaders> <add name="X-UA-Compatible" value="IE=EmulateIE8" /> </customHeaders> </httpProtocol> </system.webServer>

Edición : eliminé el código clear justo antes del add ; fue un descuido innecesario de copiar y pegar. Buena captura, comentaristas!


También obtuve el mismo problema de la representación de IE9 en los estándares de documentos de IE7 para el host local. He intentado muchas etiquetas de comentarios condicionales pero sin éxito. Al final, simplemente eliminé todas las etiquetas condicionales y simplemente agregué una metaetiqueta inmediatamente después de la cabeza como a continuación y funcionó como encanto.

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

Espero eso ayude


Tenga en cuenta que si lo está sirviendo desde PHP, puede usar el siguiente código para arreglarlo también.

header("X-UA-Compatible: IE=Edge");


Timmy Franks lo tenía bien para mí. Hoy tuvimos el problema de que el cliente tenía IE8 en toda la empresa, y estaba forzando el sitio que escribimos para su intranet en modo de compatibilidad. Configuración de "IE-Edge" pareció arreglarlo.

<httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=Edge" /> </customHeaders> </httpProtocol>


Tuve el mismo problema después de probar muchas combinaciones. Tenía esta nota de trabajo. He verificado la compatibilidad de la intranet.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <head runat="server">


X-UA-Compatible solo anulará el Modo de documento, no el Modo de navegador, y no funcionará para todos los sitios de intranet; Si este es su caso, la mejor solución es desactivar "Mostrar sitios de intranet en la Vista de compatibilidad" y establecer una configuración de directiva de grupo para especificar qué sitios de intranet necesitan el modo de compatibilidad.


La solución Server Side es la recomendada, como propuso @TimmyFranks en su respuesta, pero si necesita implementar la regla X-UA-Compatible en el nivel de la página, lea los siguientes consejos, para beneficiarse de la experiencia de quien ya se quemo

La etiqueta meta X-UA-Compatible debe aparecer inmediatamente después del título en el elemento <head> . No se pueden colocar otras etiquetas meta, enlaces css y js scripts antes.

<head> <title>Site Title</title> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta charset="utf-8"> <script type="text/javascript" src="/jsFile.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> <link rel="shortcut icon" href="/apple-touch-icon.png" /> </head>

Si hay algún comentario condicional en la página (digamos que se encuentra en <html> ), deben colocarse debajo, después de <head> .

// DON''T: place class inside the HTML tag <!--[if gt IE 8]><!--> <html class="aboveIe8"> <!--<![endif]--> // DO: place the class inside the BODY tag <!--[if gt IE 8]><!--> <body class="aboveIe8"> <!--<![endif]-->

El equipo de Html5BoilerPlate escribió sobre este error: http://h5bp.com/i/378 Tienen varias soluciones.

Con respecto a la vista de Intranet y compatibilidad, hay configuraciones cuando se accede a Herramientas> Configuración de vista de compatibilidad.