Determinar si en el modo de compatibilidad de IE8 usando condicionales
Pregunta
Yo entiendo de mi investigación que IE8 hace cosas molestas como forzar a sí mismo en modo IE7 rural por la intranet local y rangos de IP locales. Yo entiendo de una pregunta anterior que no hay manera de utilizar las sentencias condicionales como, independientemente de si IE8 está prestando en modo IE8 o IE7, todavía sólo utilizará el condicional <!--[if IE 8]>
.
Dado que esta pregunta se hizo hace un tiempo (durante la fase beta de IE8 por el aspecto de las cosas) Me pregunto si esto ha cambiado o si hay alguna otra manera utilizando condicionales para determinar si IE8 está en el modo de compatibilidad.
Gracias!
Solución
No, no puede hacerlo utilizando los condicionales.
La mejor manera de hacerlo es utilizar la propiedad document.documentMode como se describe en el enlace Pekka publicada. ¿Cómo puedo detectar si se está ejecutando en IE8 compatibilidad vista?
Otros consejos
Al final, me eligió para mezclar las dos estrategias comunes para hacer frente a este error.
He creado un archivo CSS de anulación, que importo usando los comentarios condicionales. En el caso de Internet Explorer 8 o 9, sin embargo, este aumento no se ve tan bien, así que incluyo la 'fuerza IE en última modo de representación' interruptor de cabecera, como se muestra a continuación.
<!--[if lte IE 7]>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="stylesheet" type="text/css" href="/Content/IE7Overrides.csss" />
<![endif]-->
Esto proporciona Internet Explorer 7 con un mecanismo de seguridad decente, pero las fuerzas de IE8 e IE9 para mostrar que en la última versión del navegador, que mostrará la tabla basado en CSS correctamente.