He estado trabajando en un sitio web de intranet durante más de 6 meses donde he estado usando la siguiente doctype
metaetiqueta de compatibilidad con html5 y edge para forzar a Internet Explorer a no emular una versión anterior del navegador, y esto ha funcionado bien.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>My title</title>
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
</head>
<body>
</body>
</html>
La razón por la que lo estaba haciendo de esta manera es porque el lugar donde trabajo usa una configuración de política para habilitar la vista de compatibilidad para todos los sitios de la intranet, y este enfoque que usa la EDGE
configuración ha funcionado en Internet Explorer 9.
Hace más de un mes me actualizaron a Internet Explorer 11 y el sitio todavía funcionaba como se esperaba.
Hoy esto dejó de funcionar como se esperaba, no puedo decirlo con certeza, pero creo que la política que fuerza la vista de compatibilidad no estaba habilitada en IE11 y ahora lo está ... y como esto se habilitó, la metaetiqueta de compatibilidad ya no está haciendo lo que se espera, y este sitio se está ejecutando en el modo Enterprise que emula IE8.
¿Alguien sabe cómo solucionar este problema y forzar el uso de IE11 en un sitio de intranet cuando se aplica el "modo de empresa" de compatibilidad? y no se puede desactivar a través de la configuración del navegador?
EDITAR
Acabo de intentar agregar un encabezado personalizado en mi web.config como se explica en esta respuesta https://stackoverflow.com/a/18257208/98706
y esto no funcionó para mí, todavía recibo el siguiente mensaje en la consola de la barra de herramientas del desarrollador de
HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
Es como si la versión 8 estuviera siendo tratada como la edge
cuando esta configuración de compatibilidad de intranet está habilitada en IE11.
Esta publicación: https://www.leapinggorilla.com/Blog/Read/1016/ie-ate-my-css---disabling-compatability-mode explica esto bien, todavía no he intentado configurar este encabezado mediante código y nuestros usuarios no tienen acceso para cambiar la configuración de su navegador. Ninguno de los otros cambios ha funcionado todavía.
ACTUALIZAR
Consulte mi comentario en esta publicación sobre cuál es la diferencia entre el modo Enterprise y el modo de compatibilidad, porque es importante.
Respuestas:
Asegurarse:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
es el primero
<meta>
etiqueta de su página; de lo contrario, es posible que IE no la respete.Alternativamente, el problema puede ser que IE esté usando el Modo de empresa para este sitio web:
HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
fuente
Este problema generalmente se debe a que la URL del sitio web / intranet está ubicada en uno de:
(con Mostrar sitios de intranet en la configuración de Vista de compatibilidad habilitada)
En las redes corporativas, esta configuración de vista de compatibilidad a menudo se controla de forma centralizada a través de la política de grupo . En su caso, el modo de empresa parece ser el culpable.
Desafortunadamente, configurar META
X-UA-Compatible
no anulará esto.Para usuarios finales
A veces, la única forma de que los usuarios finales anulen esto es presionar F12 y cambiar el Modo de documento en Emulación. pestaña . Sin embargo, esta configuración no es permanente y puede revertirse una vez que se cierren las herramientas de desarrollo.
También puede intentar excluir su sitio de la zona de Intranet. Pero la lista de dominios que pertenecen a la zona de Intranet también suele estar controlada por la política de grupo, por lo que las posibilidades de que esto funcione son escasas.
Para ver la lista de dominios que pertenecen a la zona de Intranet, vaya a:
Herramientas -> Opciones de Internet -> Seguridad -> Sitios -> Avanzado
Si la lista contiene su subdominio y está atenuada, no podrá anular la vista de compatibilidad hasta que su administrador de red lo permita.
Realmente necesita ponerse en contacto con su administrador de red para permitir cambiar la configuración de la vista de compatibilidad en la política de grupo.
Para administradores de red
La carga del sitio web con las herramientas de desarrollo abiertas (F12) a menudo informará la razón por la que IE está cambiando a un modo anterior.
Las 3 configuraciones mencionadas anteriormente generalmente se controlan a través de la Política de grupo, aunque a veces se pueden anular en las máquinas de los usuarios.
Si el problema es el modo de empresa (como parece ser el caso del póster original), los dos artículos siguientes pueden ser útiles:
fuente
Para aquellos que están construyendo un proyecto ASP.NET MVC, asegúrese de agregar:
etiqueta en su página de Diseño (plantilla). Pasé dos horas depurando y ajustando, solo para darme cuenta de que solo había agregado esa metaetiqueta en mis páginas secundarias. Tan pronto como lo agregué a mi página de diseño, el navegador se cargó perfectamente en modo EDGE.
fuente
La respuesta marcada es la correcta. Sin embargo, Pricey, debería hacer un seguimiento de esto con sus grupos de administración de escritorio y de AD. Están haciendo un mal uso de la lista de sitios de IE11 Enterprise Mode. Microsoft NO tiene la intención de que se use para todos los sitios de intranet dentro de una organización. Eso sería propagar la configuración existente de "renderizar todos los sitios de intranet en modo de compatibilidad" que es la pesadilla del avance de los sitios web corporativos en todo el mundo.
Está destinado a implementarse como una "lista negra", con un puñado de sitios que realmente requieren un modo de navegador heredado en la lista del modo de empresa con sus requisitos de representación especificados. Todos los demás sitios de su organización quedan libres para usar Edge. Las personas de su organización que lo implementaron con todos los sitios de intranet incluidos para empezar han entendido completamente mal cómo se debe implementar el Modo de empresa.
fuente
La pregunta es un poco vieja pero acabo de resolver un problema muy similar. Tenemos varios sitios de intranet aquí, incluido el que soy responsable, y los otros requieren un modo de compatibilidad o se rompen. Por esa razón, las reglas del sitio establecen el modo de compatibilidad predeterminado de IE en los sitios de la intranet. Estoy actualizando mis propias cosas y ya no las necesito; de hecho, algunas de las funciones que intento utilizar no se ven bien en el modo de compatibilidad. Estoy usando la etiqueta meta IE-Edge como tú.
IE asume que los sitios web sin la dirección completa son intranet y actúa en consecuencia. Con eso en mente, simplemente modifiqué los enlaces en IIS para escuchar solo la dirección totalmente calificada, luego configuré un sitio web ficticio que escuchó la dirección no calificada. El segundo redirige todo el tráfico a la dirección totalmente calificada, lo que hace que IE crea que es un sitio externo. El sitio se muestra correctamente con o sin la casilla Modo de compatibilidad en sitios de intranet marcada.
fuente
Este es un viejo problema con buena información. Pero lo que acabo de descubrir es que el uso de un FQDN desactiva el modo Compat en IE 9-11. Ejemplo. Tengo el problema de compatibilidad con
http: // lrmstst01: 8080 / JavaWeb / login.do
pero los problemas desaparecen con
http://lrmstst01.mydomain.int:8080/JavaWeb/login.do
NB: El .int es parte de nuestro dominio interno
fuente
Muévalo a la zona Sitios de confianza agregándolo a una lista de Sitios de confianza o a una configuración local. Esto lo sacará de Intranet Zone y no se procesará en Compat. Ver.
fuente
Agregue la siguiente propiedad en el archivo web.config para sitios IIS. Esto funcionó para mí en mi intranet en IE11.
fuente
Resolví este problema redirigiendo al usuario al FQDN del servidor que aloja la intranet.
IE probablemente usa el peor algoritmo del mundo para detectar sitios de "intranet" ... de hecho, especificar server.domain.tld me resuelve el problema.
Sí, lo leíste correctamente, IE detecta sitios de intranet no por dirección IP privada, como haría cualquier desarrollador que haya oído hablar de TCP / IP, no, por la parte "host" de la URL, si no tiene parte de dominio, debe ser interno.
Da miedo saber que los desarrolladores de IE no comprenden los conceptos más básicos de TCP / IP.
Tenga en cuenta que esto fue en un cliente empresarial GRANDE, lograr que cambien el GPO por usted es como intentar mover los Alpes 4 metros hacia el este, no va a suceder.
fuente
Por lo que vale, también tuve el problema en IE11:
<!DOCTYPE html>
yIE=Edge
mencionadas en la pregunta.<head>
elementoDespués de un tiempo, descubrí que:
Encabezado HTTP :
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)
peroJavaScript :
window.navigator.userAgent === 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko'
Así que terminé haciendo la verificación del lado del cliente.
Y por cierto, mientras tanto, ya no se recomienda verificar el agente de usuario. Consulte https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent (pero podría haber un buen caso)
fuente