html5 - todos - ¿Por qué IE9 cambia al modo de compatibilidad en mi sitio web?
modo de documento emulador internet explorer (8)
Como parte aparte de los sitios web más modernos, si está utilizando declaraciones condicionales en su etiqueta html según boilerplate, por alguna razón, ie9 hará que el modo de compatibilidad sea predeterminado. La solución aquí es quitar las declaraciones condicionales de la etiqueta html y agregarlas a la etiqueta del cuerpo, en otras palabras, fuera de la sección principal. De esa manera, aún puedes usar esas clases en tu hoja de estilo para apuntar a navegadores más antiguos.
Acabo de instalar IE9 beta y en un sitio específico que creé (HTML5), IE9 salta al modo de compatibilidad, a menos que se lo pida manualmente. He intentado eliminar varias partes del sitio web pero ningún cambio. Incluyendo la eliminación de todos los CSS incluye. En algún otro sitio web mío va bien.
Además, no lo configure manualmente porque IE9 recuerda la configuración del usuario y no puede volver a la configuración automática (o al menos no he encontrado cómo, ni siquiera a través de la navegación privada y el vaciado de caché)
De todas formas. El sitio donde salta al modo de compatibilidad: http://alliancesatwar.com/guide/
Uno donde se hace correcto: http://geuze.name/basement/ (No puedo publicar más de 1 hipervínculo)
Ambos usan el mismo doctype
y todo. Esos sitios tienen mucho en común (aparte de la apariencia) usando la misma plantilla básica (codificación, meta etiquetas, doctype y el mismo javascript)
¡Sería genial si alguien tiene una respuesta para mí! Un sitio web HTML5 que se renderiza en modo IE7 es bastante ... escaso.
El sitio en http://www.HTML-5.com/index.html tiene una metaetiqueta compatible con X-UA, pero sigue ingresando en la Vista de compatibilidad como lo indica el ícono de "página rota" en la barra de direcciones. ¿Cómo se obtiene la opción de menú para forzar a IE 9 (Versión final 9.0.8112.16421) a renderizar una página en Modo Estándar? Intenté hacer clic con el botón derecho en el icono de la página rasgada y en el truco de la tecla "Alt" para mostrar las opciones de menú adicionales mencionadas por Rene Geuze, pero no funcionaron.
Funciona en IE9 documentMode para mí.
Sin un encabezado / meta X-UA-Compatible
para establecer un modo de documento explícito, obtendrá un modo basado en:
- si el usuario ha hecho clic en el botón "vista de compatibilidad" en ese dominio antes;
- quizás también si esto sucedió automáticamente debido a algún otro contenido en el sitio que causó que el renderizador de IE8 / 9 se bloquee y vuelva al renderizador anterior;
- si el usuario ha optado por poner todos los sitios en la vista de compatibilidad de forma predeterminada;
- si IE piensa que el sitio está en su intranet y, por lo tanto, la vista de compatibilidad está por defecto;
- si el sitio en cuestión se encuentra en la propia lista de sitios web de Microsoft que requieren una vista de compatibilidad.
Puede cambiar esta configuración desde ''Herramientas -> Configuración de vista de compatibilidad'' desde el menú de IE. Por supuesto, ese menú ahora está oculto, por lo que no lo verá hasta que presione Alt.
Como autor del sitio, si está seguro de que su sitio cumple con los estándares (se desempeña bien en otros navegadores y usa la función de rastreo para decidir qué soluciones de navegador usar), sugiero usar:
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
o el encabezado HTTP:
X-UA-Compatible: IE=Edge
para obtener el último renderizador sea cual sea la versión de IE que esté en uso.
Hace poco tuve que resolver este problema y esto es lo que hice:
En primer lugar, esta solución se basa en el ajuste del servidor Apache.
La segunda opinión principal es que hay un error en IE9, lo que significa que la etiqueta meta no funcionará, en lugar de esta solución, intente esto
- encuentra / abre tu httpd.conf
descomentar / o añadir la siguiente línea
LoadModule headers_module modules/mod_headers.so
agrega las siguientes lineas
<IfModule headers_module> Header set X-UA-Compatible: IE=EmulateIE8 </IfModule>
guardar / reiniciar su servidor Apache,
- navegue a su página con IE9, use herramientas como wireshark o fiddler o use las herramientas de desarrollador de IE para verificar que el encabezado está allí
He publicado este comentario en un hilo separado de , pero pensé que valía la pena repetirlo aquí:
Para nuestra aplicación ASP.Net interna, agregar la etiqueta "X-UA-Compatible" en la página web, en web.config o en el código subyacente no hizo ninguna diferencia.
Lo único que funcionó para nosotros fue desactivar manualmente esta configuración en IE8:
(Suspiro.)
Este problema solo parece ocurrir con IE8 e IE9 en los sitios de intranet. Los sitios web externos funcionarán bien y usarán la versión correcta de IE8 / 9, pero para los sitios web internos, IE9 repentinamente decide que en realidad es IE7, y no tiene soporte para HTML 5.
No, tampoco entiendo muy bien esta lógica.
Mi renuente solución ha sido probar si el navegador es compatible con HTML 5 (creando un lienzo y probando si es válido), y mostrando este mensaje al usuario si no es válido:
No es particularmente fácil de usar, pero lograr que el usuario desactive esta configuración molesta parece ser la única forma de permitir que ejecuten las aplicaciones web HTML 5 de la casa correctamente.
O haz que los usuarios usen Chrome. ;-)
Luce bien para mi:
¿Estás seguro de que no lo hiciste en la configuración global o algo así? Esta es una instalación limpia de la versión beta en Windows 7. Las herramientas del desarrollador informan que la página está predeterminada al modo estándar de IE9.
Para obligar a IE a renderizar en el modo estándar de IE9, debes usar
<meta http-equiv="X-UA-Compatible" content="IE=edge">
Algunas condiciones pueden hacer que IE9 salte a los modos de compatibilidad. Por defecto, esto puede ocurrir en los sitios de intranet.
pongo
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
primera cosa despues
<head>
(Lo leí en alguna parte, no lo recuerdo)
¡No podía creer que funcionara!