Pregunta

He estado luchando contra el modo de compatibilidad de Internet Explorer 8 durante todo el día y yo estoy a punto de tirar un ladrillo en ella.

Tengo algo de código, que utiliza jQuery 1.2 (sí es viejo - no puede cambiar eso), para buscar algunos registros en nuestra aplicación web. Los resultados de la búsqueda se puede hacer clic en para ver el contenido del registro (mediante el uso de .animate () se abre un espacio debajo de la fila y crea otro debajo de TR y se inserta HTML datos de un feed JSON).

En IE8, al hacer clic en un resultado para ver el contenido lo obliga a volver a cargar en modo de compatibilidad, donde funciona bien en todos los otros navegadores (IE7, FF3.0 +, Chrome, Safari). He estado tratando de utilizar la barra de herramientas para desarrolladores de Internet Explorer 8 para depurar y rastrear por qué ocurre esto, pero no he sido capaz de encontrar cualquier error o cualquier evidencia de lo que podría ser la causa de la misma.

El código que muestra previsualización:

// Code that binds a click to open the result preview:
var _tr = $('<tr class="outline" id=' + val.assessment.assessmentId + '></tr>').bind("click", msi.reuseAssessment.preview);

...

// in msi.reuseAssessment.preview()
var url = "/direct/msi-assessment/" + assessmentId + "/assessmentHtml.json?no-cache=true";
jQuery.ajax({
    type: "GET",
    url: url,
    dataType: "json",
    success: function(d, textStatus){
        var _content = d.assessmentHtml;
        var _preview = $("<tr id=" + assessmentId + "></tr>");

        // loadContent 
        _tr.after(_preview.animate({
            height: 50
        }, 500, 0, function() {
            msi.reuseAssessment.drawPreview(this, _content); // Puts the content from the json into a td
        }));
    },
    error: function(xmlHttpReq, status, errorThrown) {
        // display error msg
    }
});

Al entrar a través del código utilizando herramientas de desarrollo de IE8, que se pasa aquí y en algún lugar en el código de jQuery y fue entonces cuando se refresca en modo de compatibilidad. He validó el JSON, el código HTML que sale con W3C y es todo bien, estoy realmente en una pérdida en cuanto a lo que está sucediendo.

¿Alguien sabe cómo podría rastrear mejor lo que está causando, o debo forzar el modo IE7 en estas páginas?

Edit: La búsqueda se realiza en un 'emergente' ajax que aparece en la parte superior de la pantalla. Es de plantilla (HTML base) se carga desde un archivo HTML independiente, y se inyecta en un div en la parte inferior de la página original. Esto significa que habría archivos HTML anidadas (con <html></html> etiquetas, etc). Afectaría esto también?
Editar. 3: la eliminación de estas etiquetas duplicadas no se soluciona el problema

Editar 2: Todavía no se han resuelto este. ¿Es sólo una de esas cosas que IE8 no se mostrará correctamente y lo atribuyo a capricho navegador? Realmente agradecería un poco de ayuda en este sentido.

¿Fue útil?

Solución 3

Después de un colega hizo un poco de búsqueda, así, encontramos este aquí en SO , donde se ha confirmado que max-height está causando una aserción duro en IE8, confirmando que se trata, de hecho, un error en IE8 como EricLaw publicada.

Estábamos usando max-height para el estilo del div que Insertamos el contenido en, y, a su vez, haciendo que la aserción duro. Lo anterior pregunta vinculadas tiene un trabajo alrededor para cualquier otra persona que tiene este problema.

Otros consejos

Por lo fuerza para volver a cargar en modo de compatibilidad ¿Quiere decir que se obtiene una notificación de globo flotante que dice algo como: "Internet Explorer ha detectado un problema con esta página y se ha cargado en el modo de compatibilidad" ?

Si es así, eso significa que has alcanzado un error en el IE. Llamado "afirman duro", significa que el motor de renderizado se estrelló (no un AV ni nada emocionante, que acaba de conseguir en un estado irrecuperable) y por lo tanto IE trata de proporcionar al usuario algunos contenido mediante el mayor motor de diseño.

Si el problema se sigue produciendo en IE9, informe de un error en http://connect.microsoft.com/ie

Gracias!

¿Se ha asegurado su DOCTYPE y X-UA-Compatible son correctos

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

y añadir a continuación de la <head>

<meta http-equiv="X-UA-Compatible" content="IE=8">
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top