vista para pagina orientada modo internet forzar esta emulador documento con compatibilidad adjunta html internet-explorer

html - para - la pagina adjunta esta orientada al modo de documento 7



Forzar el modo de compatibilidad de IE desactivado usando etiquetas (12)

Como se sugiere en esta answer a una pregunta relacionada, el modo "borde" se puede configurar en el archivo Web.Config. Esto hará que se aplique a todo el HTML devuelto desde la aplicación sin la necesidad de insertarlo en páginas individuales:

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

Este mismo paso también se puede realizar modificando los "Encabezados de respuesta HTTP" utilizando el Administrador de IIS para el servidor IIS, el sitio web completo o aplicaciones específicas.

Estoy trabajando para un cliente que fuerza el modo de compatibilidad en todos los sitios de intranet. Me preguntaba si hay una etiqueta que pueda poner en mi HTML que desactive el modo de compatibilidad.


Creo que esto hará el truco:

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


Después de muchas horas para solucionar este problema ... Aquí hay algunos aspectos destacados que nos ayudaron con los documentos X-UA-Compatible : http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16

Usando <meta http-equiv="X-UA-Compatible" content=" _______ " />

  • Los modos del Agente de usuario estándar (los que no son emulados) ignoran las directivas <!DOCTYPE> en su página y se procesan según los estándares compatibles con esa versión de IE (por ejemplo, IE=8 obedecerá mejor el espaciado de los bordes de la tabla y algunos pseudo selectores que IE=7 ).

  • Mientras que, los modos de Emulación le dicen a IE que siga las directivas de <!DOCTYPE> en tu página, representando el modo de estándares según la versión que elijas y el modo de peculiaridades basado en IE=5

  • Los valores posibles para el atributo de content son:

    content="IE=5"

    content="IE=7"

    content="IE=EmulateIE7"

    content="IE=8"

    content="IE=EmulateIE8"

    content="IE=9"

    content="IE=EmulateIE9"

    content="IE=edge"


Esto se debe a la configuración dentro de la configuración de compatibilidad de IE que dice que todos los sitios de Intranet deben ejecutarse en modo de compatibilidad. Puede desmarcar esto a través de una política de grupo (o simplemente desmarcarlo en IE), o puede configurar lo siguiente:

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

Aparentemente, no es posible cambiar la configuración de la vista de compatibilidad como una política de grupo, pero es algo que quizás se pueda cambiar en el registro. Esta etiqueta meta funciona bien para mí, tuve que hacer que el atributo requerido funcionara como parte de un formulario html. , funcionó en chrome y firefox pero no en IE.

Aquí hay una buena visualización de lo que los navegadores admiten cada elemento individual de html 5.

http://html5readiness.com/

Tenga en cuenta que el único denominador de Google Chrome, lo soporta todo. Espero que esto sea de ayuda


IE8 utiliza por defecto el modo estándar para la red interna y el modo peculiar para la red interna. La metaetiqueta HTML se ignora si tiene el tipo de documento establecido en xhtml transicional. La solución es agregar un encabezado HTTP en el código. Esto funcionó para nosotros. Ahora nuestro sitio de intranet está forzando a IE8 a renderizar la aplicación en modo estándar.

Agregado a PageInit de la clase de página base (ASP.net C #):

Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");

referencia: http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html


Insertar como el primer elemento debajo de la etiqueta.

Esto obliga a IE a representar la página en la versión física de IE, e ignora la "Configuración del modo" del navegador. Esto se puede configurar en las herramientas del desarrollador, intente cambiarlo a una versión anterior de IE para probarlo, esto debería ignorarse y la página debería verse exactamente igual.


La solución de metaetiqueta no funcionó para nosotros, pero al establecerla en el encabezado de respuesta sí:

header(''X-UA-Compatible: IE=edge,chrome=1'');


Si desea que cada página web individual cargue el contenido elegido y está utilizando asp.net. Solo aplíquelo como la primera etiqueta debajo de la etiqueta del encabezado en Vistas> compartidas> Layout.cshtml

solo un consejo


Si está trabajando con una página en la Zona de Intranet, puede encontrar que IE9 no importa lo que haga, está entrando en el modo Compat de IE7.

Esto se debe a la configuración dentro de la configuración de compatibilidad de IE que dice que todos los sitios de Intranet deben ejecutarse en modo de compatibilidad. Puede desmarcar esto a través de una política de grupo (o simplemente desmarcarlo en IE), o puede configurar lo siguiente:

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

Esto funciona (como se detalla en otras respuestas), pero puede que inicialmente no lo parezca: debe aparecer antes de que se declaren las hojas de estilo . Si no lo haces, se ignora.


Si tiene acceso al servidor, la forma más confiable de hacerlo es hacerlo en el propio servidor, en IIS. Vaya a los encabezados de respuesta HTTP de IIS. Añadir nombre: X-UA-Compatible
Valor: IE = borde Esto anulará su navegador y su código.


Solo unas pocas notas más sobre este tema basadas en mis experiencias recientes. La universidad en la que trabajo para problemas con computadoras portátiles con IE 8 está configurada en modo de compatibilidad para todos los sitios de Intranet. Intenté agregar la metaetiqueta para deshabilitar este modo para las páginas que se publican en mi sitio, pero IE siempre ignoró esta etiqueta. Como mencionó Lance en su publicación, agregar un encabezado de respuesta solucionó este problema. Así es como configuro el encabezado según el método de HTML5:

<IfModule mod_headers.c> Header set X-UA-Compatible "IE=edge,chrome=1" # mod_headers can''t match by content-type, but we don''t want to send this header on *everything*... <FilesMatch "/.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webm|webp|woff|xml|xpi)$"> Header unset X-UA-Compatible </FilesMatch> </IfModule>

Para que este encabezado se envíe realmente, debe asegurarse de tener mod_headers activados en Apache. Si desea asegurarse de tener este mod activado, coloque esto en una página que pueda ejecutar php:

<pre> <?php print_r(apache_get_modules()); ?> </pre>


Hay el modo "borde" .

<html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>My Web Page</title> </head> <body> <p>Content goes here.</p> </body> </html>

Desde la página de MSDN enlazada:

El modo perimetral le dice a Windows Internet Explorer que muestre el contenido en el modo más alto disponible, que en realidad rompe el paradigma de "bloqueo". Con Internet Explorer 8, esto es equivalente al modo IE8. Si una versión futura (hipotética) de Internet Explorer admite un modo de mayor compatibilidad, las páginas configuradas en modo Edge aparecerán en el modo más alto compatible con esa versión; sin embargo, esas mismas páginas seguirán apareciendo en el modo IE8 cuando se visualicen con Internet Explorer 8.

Sin embargo, el modo "borde" no se recomienda en el uso de producción:

Se recomienda que los desarrolladores web limiten su uso del modo Edge a las páginas de prueba y otros usos no productivos debido a los posibles resultados inesperados de la representación del contenido de la página en futuras versiones de Windows Internet Explorer.

Sinceramente, no entiendo completamente por qué. Pero de acuerdo con esto, la mejor manera de hacerlo en este momento es usar IE=8 .