Por defecto, IE8 fuerza a los sitios web de intranet a modo de compatibilidad. Intenté cambiar el meta encabezado a IE8, pero no reconoce el meta encabezado y solo usa la configuración del navegador. ¿Alguien sabe cómo deshabilitar esto?
200
Respuestas:
Es posible anular el modo de compatibilidad en la intranet.
Para IIS, simplemente agregue el siguiente código a web.config. Trabajó para mí con IE9.
Equivalente para Apache:
Y para nginx:
Y para express.js:
fuente
Michael Irigoyen tiene razón, PERO es un poco más complicado ...
Si está utilizando el maravilloso repetitivo de Paul Irish, tendrá algo como lo siguiente:
Esto NO funcionará como se esperaba y forzará en IE a entrar en modo de compatibilidad en un entorno de Intranet si tiene marcada la opción "Mostrar sitios de intranet en vista de compatibilidad". Debe eliminar los comentarios condicionales de IE para evitar el modo de compatibilidad de Intranet.
Entonces el siguiente código funcionará:
Básicamente, si desencadena comentarios condicionales de IE antes de
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
declaración, se le obligará a pasar al modo de compatibilidad en un entorno de Intranet si está ejecutando IE9 con la configuración predeterminada.ACTUALIZACIÓN - INFORMACIÓN ADICIONAL: Pero tenga en cuenta que hay un truco que hará que la plataforma HTML5 funcione:
Agregue un comentario condicional y vacío antes del DOCTYPE. Y tenga en cuenta también que cuando hace eso , también puede agregar comentarios condicionales alrededor del
X-UA-Compatible
Directiva, por lo que la página HTML 5-válida también. Entonces, por ejemplo:Una publicación de blog inspirada en la primera parte de esta respuesta tiene más detalles. Y por cierto: Como se mencionó en esa entrada del blog, también se puede reemplazar el comentario condicional antes del DOCTYPE con un condicional semi comentario con ninguna condición :
<!--[]-->
. Así, así:Pero tenga en cuenta que la última variante (
<--[]--><!DOCTYPE html>
), como se explica, por ejemplo, en esta respuesta a otra pregunta , activará el conocido problema de que, para versiones de IE heredadas sin soporte paraX-UA-Compatioble
(lea: para IE7 e IE6), incorporará el navegador a en modo capricho.fuente
Si despliega el menú "Herramientas" y selecciona "Configuración de Vista de compatibilidad" En ese cuadro de diálogo en la parte inferior hay una configuración "Mostrar sitios de intranet en modo de compatibilidad". Si desmarca esto, esto debería resolver el problema e IE usará el modo basado en el DOCTYPE.
fuente
Hay una cierta confusión en las respuestas a esta pregunta.
La respuesta principal es actualmente una solución del lado del servidor que establece un indicador en el encabezado http y algunos comentarios indican que una solución que usa una metaetiqueta simplemente no funciona.
Creo que esta entrada del blog ofrece una buena descripción de cómo usar la metainformación de compatibilidad y, en mi experiencia, funciona como se describe: http://blogs.msdn.com/b/cjacks/archive/2012/02/29/using-x- ua-compatible-para-crear-aplicaciones-web-empresariales-duraderas.aspx
Los puntos principales:
Un punto importante (y creo que mucha confusión viene de este punto) es que IE tiene dos "clases" de modos:
El modo de documento determina el motor de representación (cómo se representa la página web).
El modo de navegador determina qué cadena de User-Agent (UA) envía IE a los servidores, qué valor predeterminado tiene el modo de documento y cómo evalúa los comentarios condicionales.
Puede encontrar más información sobre el modo de documento frente al modo de navegador en este artículo: http://blogs.msdn.com/b/ie/archive/2010/06/16/ie-s-compatibility-features-for- site-developers.aspx? Redirected = true
En mi experiencia, los metadatos de compatibilidad solo influirán en el modo de documento . Entonces, si confía en la detección del navegador, esto no lo ayudará. Pero si está utilizando la detección de funciones, este debería ser el camino a seguir.
Por lo tanto, recomendaría usar la metaetiqueta (en la página html) usando esta sintaxis:
Aviso: proporcione una lista de los modos de navegador que ha probado.
La publicación del blog también desaconseja el uso de EmulateIEX. Aquí una cita:
fuente
Prueba esta metaetiqueta:
Debería forzar a IE8 a renderizarse como modo estándar de IE8 incluso si se marca "Mostrar sitios de intranet en vista de compatibilidad" [ya sea para intranet o para todos los sitios web], lo probé yo mismo en IE 8.0.6
fuente
Nuestro administrador del sistema resolvió este problema desmarcando la casilla globalmente para nuestra organización. Los usuarios ni siquiera necesitaban cerrar sesión.
fuente
Encontré una respuesta que permite anular la Vista de compatibilidad de Intranet marcada. Solo agregue en el evento OnInit de su página esta línea (no necesita meta o web.config customHeader):
fuente
Intenta poner lo siguiente en el encabezado:
Cortesía de HTML5 Boilerplate de Paul Irish (pero también funciona en XHTML Transitional).
fuente
Pude anular el modo de compatibilidad especificando la metaetiqueta como LA PRIMERA ETIQUETA en la sección de encabezado, no solo la primera metaetiqueta, sino como la PRIMERA ETIQUETA .
Gracias a @ stefan.s por ponerme en ello en su excelente respuesta. Antes de leer que tenía:
ESTO NO FUNCIONÓ
movió la etiqueta de enlace fuera del camino y funcionó
Esto funciona :
Por lo tanto, un cliente IE8 configurado para usar compatibilidad representa la página como modo estándar IE8: el contenido = 'IE = 9' significa usar el estándar más alto disponible hasta IE9 inclusive.
fuente
Esto no es exactamente una solución, pero creo que es la mejor. En nuestros sitios de intranet, le decimos a la gente que solo Firefox puede acceder a ella, no amamos a los usuarios de IE por aquí. Verifique el agente de usuario en el lado del servidor o del cliente y niegue el acceso desde IE. Y soy un programador .NET.
fuente
Había luchado con este problema y quería ayudar a proporcionar una solución y una visión únicas.
Ciertos marcos basados en AJAX inyectarán javascripts y hojas de estilo al comienzo del
<head>
y hacer esto parece evitar que la solución de metaetiquetas bien establecida funcione correctamente. En este caso, descubrí que inyectar directamente en el encabezado de respuesta HTTP, al igual que la respuesta de Andras Csehi, resolverá el problema.Sin embargo, para aquellos de nosotros que usamos Java Servlets, una buena manera de resolver esto es usar un ServletFilter.
fuente
Podemos resolver este problema en el entorno Spring-Apache-tomcat agregando una sola línea en el método RequestInterceptor:
Referencia de - Cómo crear un filtro y modificar el encabezado de respuesta Cubre cómo podemos resolver este problema a través de un RequestInterceptor (Spring).
fuente
Si desea que su sitio web fuerce el modo estándar IE 8, use esta metaetiqueta junto con un DOCTYPE válido:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
Tenga en cuenta el valor "EmulateIE8" en lugar del simple "IE8".
De acuerdo con los desarrolladores de IE, esto debería ser: "Mostrar los DOCTYPE de estándares en el modo de estándares IE8; Mostrar los DOCTYPE de Quirks en modo de Quirks. Use esta etiqueta para anular la vista de compatibilidad en las máquinas cliente y forzar los estándares a los estándares IE8".
Más información sobre esta publicación del blog de IE: http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx
fuente
Esta pregunta es un duplicado del modo de navegador Force "Internet Explorer 8" en la intranet .
Las respuestas allí indican que no es posible deshabilitar la vista de compatibilidad (en el lado del servidor): https://stackoverflow.com/a/4130343/24267 . Ese ciertamente parece ser el caso, ya que ninguna de las sugerencias que he probado ha funcionado. En IE8, el "Modo de navegador" se configura en la vista de compatibilidad de Internet Explorer 8 sin importar qué tipo de encabezado compatible con X-UA envíe.
Tuve que hacer un manejo especial para IE7 y el modo de compatibilidad, lo que provocó que el navegador se procesara con IE8 pero informara que era IE7, rompió mi código. Así es como arreglé mi código (soy consciente de que este es un truco horrible y debería probar las características, no las versiones del navegador):
fuente
Tuve el mismo problema Funcionó usando
fuente
Agregue esto dentro de la etiqueta principal de sus páginas (orientada a la versión de IE que desee):
Tenga en cuenta que esto NO cambiará el hecho de que el navegador dice que está en modo de compatibilidad (llamado modo de navegador), pero la página se mostrará en modo estándar IE8. Si TODAVÍA no se muestra como lo desea, probablemente sea porque tiene JavaScript que está verificando erróneamente la versión de IE. Consulte la siguiente publicación de blog para determinar de qué propiedad debería estar quitando porque incluso si configura la etiqueta compatible con meta X-UA, la cadena del agente de usuario seguirá diciendo MSIE 7.0 .
En mi caso, para la solución tuve que agregar una verificación para el modo de compatibilidad de IE7. Lo hice usando un código javascript simple:
fuente
Para cualquier otra persona que lea esto y busque deshabilitar esto a través de GPO para todos los usuarios, esta es la configuración:
Configuración del equipo / Plantillas administrativas / Componentes de Windows / Internet Explorer / Vista de compatibilidad / Activar el modo de estándares de Internet Explorer para Intranet local
aunque la edición web.config lo arregló para mí.
fuente
Cambiar los encabezados en .htaccess
Encontré la solución a este problema aquí: https://github.com/h5bp/html5-boilerplate/issues/378
fuente
El comentario de Stefan S sobre el modo de documento versus el modo de navegador fue muy pertinente para mi problema.
Tengo los metadatos X-UA-Content en la página, pero estaba probando la versión del navegador del lado del cliente
navigator.appVersion
. Esta prueba no refleja los metadatos porque le da al modo de navegador no al modo de documento.La respuesta para mí fue probar
document.documentMode
algo como:Ahora, mi etiqueta meta X-UA-Content se refleja en la prueba de mi navegador.
¿Por qué hago algo tan mal visto como probar el navegador? Velocidad. Varios de mis complementos de jQuery, como tablesorter, son demasiado lentos en IE6 / 7, y quiero desactivarlos. No estoy seguro de que probar las características del navegador pueda ayudarme a resolver esto de otra manera.
fuente