3 votos

IE8 adopta el nombre de la clase de IE7 al utilizar comentarios condicionales

He visto un par de respuestas que se relacionan con mis preguntas pero no consigo resolver el problema.

Estoy tratando de utilizar los comentarios condicionales para apuntar a IE como por Paul Irish Boilerplate es decir.

<!--[if lt IE 7 ]> <body class="ie6"> <![endif]--> 
<!--[if IE 7 ]>    <body class="ie7"> <![endif]--> 
<!--[if IE 8 ]>    <body class="ie8"> <![endif]--> 
<!--[if IE 9 ]>    <body class="ie9"> <![endif]--> 
<!--[if gt IE 9]>  <body> <![endif]-->
<!--[if !IE]><!--> <body> <!--<![endif]-->

El tipo de documento es "transitorio".

Estoy probando un sitio en un servidor local y mirando la barra de herramientas del desarrollador en IE8, la clase que se coloca en el cuerpo es 'ie7'

Después de un vistazo a él estoy usando lo siguiente para tratar de hacer en el modo de normas IE8 con la esperanza de que la clase puesta en el cuerpo sería 'ie8'

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">

No funciona. También he utilizado el JS aquí para decirme en qué modo está IE8. Dice que el modo estándar de IE8.

¿Alguna idea de cómo puedo hacer que la clase en el cuerpo de IE8 diga 'ie8'? O al menos, no 'ie7' como lo hace actualmente.

¿O simplemente no es posible hacer estas pruebas en un servidor local, lo que significa que tengo que ponerlo en un servidor en vivo antes de poder hacer los cambios que quiero? Lo cual parece un poco loco...

Gracias

4voto

lnrbob Puntos 8061

Si está utilizando un servidor local, probablemente esté en modo de compatibilidad con IE8. Este es el modo por defecto para los sitios locales.

Para comprobarlo pulsa F12 y la barra de herramientas del desarrollador debería cargarse. Le mostrará el modo de navegación y el modo de documento que está utilizando. IE8 debería mostrar ambos.

Puede desactivar el comportamiento por defecto haciendo clic en "Herramientas" > "Configuración de la vista de compatibilidad" y cambiar la configuración "Mostrar sitios de intranet en modo de compatibilidad".

1voto

Nathan Puntos 3564

Según esta página : "Observe que IE8 dice ser 7 en la vista de compatibilidad"

Si la excelente gente de JQuery no puede resolverlo, creo que la respuesta es probablemente no.

1voto

Spudley Puntos 85371

Si IE8 está en modo IE7, entonces el navegador es correcto al reportarse a sí mismo como IE7; después de todo, la intención del modo IE7 es renderizar la página exactamente de la manera en que IE7 lo habría hecho, así que si estás haciendo la detección del navegador, querrías que te dijeran que es IE7 porque es el comportamiento de IE7 con el que tendrías que lidiar (el hecho de que hay errores con el modo IE7 de IE8, y que no es exactamente lo mismo que un IE7 real es otro tema por completo).

Lo que parece que quieres es que IE8 esté realmente en modo IE8. Esto es algo razonable.

Dijiste que estabas usando:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">

¿has probado esto en su lugar?

<meta http-equiv="X-UA-Compatible" content="IE=edge">

'edge' le dice a IE que use el motor de renderizado más actualizado que tiene, lo que debería forzar a IE8 a pasar al modo normal de IE8. Tal vez eso funcione mejor que decirle a IE8 que se emule a sí mismo?

Por cierto, si tienes problemas en las máquinas de tu red local con IE8 que vuelve al modo IE7 cuando no lo esperas, ten en cuenta que hay un ajuste de configuración en IE8 que especifica "usar siempre el modo IE7 para los sitios de la intranet". Esta característica fue puesta por Microsoft para ayudar con la compatibilidad hacia atrás de los sitios de intranet escritos a medida que no se actualizaron bien a IE8, pero francamente causa más problemas de los que ahorra. Si este es el problema y no puede resolverlo de otra manera, puede encontrar que la respuesta más fácil es simplemente ir a todas las máquinas en su red y cambiar la configuración (dependiendo del tamaño de su red, por supuesto).

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X