2009-10-01 15 views
8

Mi equipo está desarrollando un sitio web con una interfaz de usuario bastante complicada; jQuery, ASP.Net AJAX, etc. Por supuesto, quiero que mi sitio sea compatible con todos los navegadores modernos. A veces, en las pruebas o el uso general del sitio mientras se está desarrollando, IE8 me dice que la página no funciona en modo estándar y está cambiando al modo de compatibilidad, pero nunca me dice por qué. ¿Hay algún registro o informe o configuración o algo en IE8 que pueda usar para averiguar qué molesta el modo IE8 Standards? Todo parece funcionar bien en FF, Chrome, Safari e IE7, ¿qué es lo que no le gusta a IE8 y cómo puedo descubrirlo?IE8 forzado al modo de compatibilidad

+5

+1 para intentar su mejor esfuerzo para trabajar hacia los estándares en lugar de sólo conseguir IE para hacer lo que quiera. –

+0

¿Cuál es el mensaje de error exacto? Hay un par de casos en que esto sucede por diferentes motivos ... lo peor es cuando el renderizador de IE8 falla (!) Y decide volver a intentarlo en IE7; depurar IE en este caso es difícil. – bobince

+2

Resulta que los problemas vinieron del escáner de virus que usa mi empresa: Sophos. El BHO tiene algunos conflictos con IE8 que causaba que IE volviera al modo IE7. Encontramos algunas publicaciones en los foros de Sophos que no ofrecieron mucha ayuda. Inhabilitamos el BHO y todo está bien ahora. – Matthew

Respuesta

1

Probablemente no sea una respuesta real, pero FWIW si se queja de la página entregada (por ejemplo, antes de manipularla con el DOM), debería poder averiguar de qué se queja si pasa esa misma página el W3C validator. Por supuesto, los controles de validación contra la interpretación que el validador de los estándares (lo cual es muy bueno, aunque posiblemente no perfecto) interpretación más que de Microsoft de normas (no comment), así que los dos no siempre pueden alinear ...

2

El problema tiene que ver con los estilos que está utilizando y cuyo motor de diseño IE8 tiene problemas para interpretar. Lamentablemente, no existe una lista completa de combinaciones de estilos que desencadenará este comportamiento. Usted tiene la capacidad de desactivar la recuperación automática en su propia máquina yendo a 'Herramientas-> Opciones de Internet-> Pestaña Avanzada -> Navegación -> y desmarque' Recuperación automática de errores de diseño ... '

Esto es por supuesto, solo se aplica a su máquina y no beneficia a sus clientes si se desencadena el error de diseño. No tengo una respuesta para su problema específico, pero sugiero que valide su css con el validador W3C CSS: http://jigsaw.w3.org/css-validator/

Cualquier intento de eliminar estilos complejos uno a la vez hasta encontrar la combinación que desencadena el error para su sitio.

1

Supongo que hay Hay varios problemas que podrían hacer que IE8 cambie al modo de compatibilidad, pero el estilo que encontré en mi sitio utilizaba un pseudo elemento en la etiqueta del cuerpo. Al eliminar esto, IE8 detenido dejó de cambiar automáticamente al modo de compatibilidad.

eliminado esta:

body:after { 
    // This causes IE8 to freak out and change into Compatibility Mode! 
} 
Cuestiones relacionadas