En el sitio de Microsoft afirman que una simple declaración de doctype es suficiente. Pero incluso un documento tan corto como este vuelve al modo IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
En el sitio de Microsoft afirman que una simple declaración de doctype es suficiente. Pero incluso un documento tan corto como este vuelve al modo IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Respuestas:
Internet Explorer supone que la mayoría de las páginas web se escribieron para apuntar a versiones anteriores de IE y analiza el doctype, metaetiquetas y HTML para determinar el mejor modo de compatibilidad (a veces incorrectamente). Incluso con un doctype HTML5, IE seguirá colocando su sitio web en modo de compatibilidad si es un sitio de intranet.
Para asegurarse de que su sitio web siempre use el último modo estándar, puede asegurarse de que Display intranet sites in Compatibly
esté apagado. Sin embargo, debe hacer esto en cada máquina local del servidor web (las instrucciones están a continuación).
Alternativamente, y mejor aún, puede usar el X-UA-Compatible
encabezado para desactivar esto desde el servidor. ¡Es importante tener en cuenta que usar la metaetiqueta no funcionará!
<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
En todo MSDN se menciona que el uso de un encabezado de host o una metaetiqueta debería anular incluso los sitios de intranet. El artículo Comprender los modos de compatibilidad en Internet Explorer 8 dice lo siguiente.
Una gran cantidad de sitios web empresariales internos están optimizados para Internet Explorer 7, por lo que esta excepción predeterminada conserva esa compatibilidad. ... De nuevo, si se usa una Metaetiqueta o un encabezado http para establecer un modo de compatibilidad con el documento, anulará esta configuración.
Sin embargo, en la práctica esto no funcionará, usar un encabezado de host es la única opción que funciona. La sección de comentarios del artículo también muestra numerosos ejemplos de este problema exacto.
El uso de una etiqueta Meta también tiene varios otros problemas, como ignorar la etiqueta si no está directamente debajo de la <head>
etiqueta o si hay demasiados datos antes (4k). También puede provocar que el documento se vuelva a analizar en algunas versiones de IE, lo que ralentizará el procesamiento. Puede leer más sobre estos temas en el artículo de MSDN Mejores prácticas: ponga su HEAD en orden .
Agregar el encabezado compatible con X-UA
Si está utilizando .NET e IIS, puede agregar esto a web.config
, también podría hacerlo mediante programación:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Si no está utilizando IIS, es fácil hacerlo en cualquier idioma. Por ejemplo, aquí se explica cómo hacerlo en PHP:
header('X-UA-Compatible: IE=edge');
Mientras el X-UA-Compatible
encabezado esté presente con el doctype HTML5, un sitio siempre se ejecutará en el modo estándar más reciente.
Desactivar la Vista de compatibilidad
Puede ser útil desactivar la Vista de compatibilidad. Para hacerlo, desmarque Display all intranet sites in compatibility view
en la Configuración de Vista de compatibilidad.
Puede mencionar esto presionando Altpara obtener el menú.
Editar Esta respuesta también pertenece a IE9.
alt
para abrir la barra de herramientas, está debajo de herramientas -> configuración de vista de compatibilidad
Esto funciona para mi ...
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
X-UA-Compatible
metaetiqueta, pero que aún no activa el modo de documento de los estándares IE10 como predeterminado de página, descubrí que si la metaetiqueta se encuentra debajo de las etiquetas de script o simplemente demasiado lejos de la parte superior del <head>
en el árbol DOM, IE10 llora y establece el modo de documento a los estándares IE8. Por lo tanto, mantenga su IE=edge
metaetiqueta cerca de la <title>
etiqueta. No siempre es una solución simple para los sitios de Wordpress cuando no está codificado en el archivo de plantilla de encabezado. No estoy seguro si a IE11 le importa dónde está la metaetiqueta, pero espero que esto sea útil para alguien.
Intenta agregar la siguiente etiqueta a la cabeza
<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />
IE=Edge
en su lugar
La metaetiqueta no hace nada para los sitios de intranet y mi problema fue la representación de IE10 en el modo de compatibilidad de IE10. Lo que abordó el problema para mí fue llevar la respuesta de @ Jeow más allá y usar ese valor en un encabezado http al agregar lo siguiente web.config
en IIS:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<!-- <add name="X-UA-Compatible" value="IE=edge" /> not good enough -->
<add name="X-UA-Compatible" value="IE=11,IE=10,IE=9,IE=8" />
</customHeaders>
</httpProtocol>
</system.webServer>
Para fines de IE, los sitios de intranet incluyen sitios públicos que no se enrutan a externos; por ejemplo, un empleado de Stackoverflow que trabaja desde la oficina probablemente vería stackoverflow.com en modo de compatibilidad.
Funcionó perfectamente para mí cuando hice lo siguiente:
En http://msdn.microsoft.com/en-us/library/gg699338(v=vs.85).aspx
Se utilizó el ejemplo exacto que proporcionan en el primer cuadro (se agregaron los que faltan </html>
en la parte inferior), lo abrí en IE10 y los estándares se forzaron, creo que es posible que necesites contenido real en el html para forzar estándares no seguros.
Mi sugerencia sería reemplazar su código vacío con contenido real (algo simple) y ver qué hace.