div create jquery internet-explorer-8 ie-developer-tools jquery-animate ie8-compatibility-mode

jquery create div



IE8 fuerza el modo de compatibilidad al insertar datos en un div (3)

¿Ha asegurado que 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 agregue esto justo después del <head>

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

He estado luchando contra el modo de compatibilidad de IE8 todo el día y estoy a punto de tirarle un ladrillo.

Tengo un código que usa jquery 1.2 (sí, es antiguo, no puedo cambiar eso) para buscar algunos registros en nuestra aplicación web. Se puede hacer clic en los resultados de la búsqueda para ver el contenido del registro (usando .animate () abre un espacio debajo de la fila y crea otro TR debajo e inserta datos HTML de un feed json).

En IE8, al hacer clic en un resultado para ver el contenido, se lo vuelve a cargar en modo compatibilidad, donde funciona bien en todos los demás navegadores (IE7, FF3.0 +, Chrome, Safari). He estado tratando de usar la barra de herramientas para desarrolladores de IE8 para depurar y rastrear por qué sucede esto, pero no he podido encontrar ningún error o evidencia de lo que podría estar causando.

Código que muestra la vista previa:

// 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 recorrer el código con las herramientas de desarrollo de IE8, se transmite aquí y en algún lugar del código de jQuery y es cuando se actualiza en modo compatibilidad. He validado el JSON, el código HTML que sale con w3c y está todo bien, realmente no sé qué está pasando.

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

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

Edit 2: Todavía no he resuelto esto. ¿Es solo una de esas cosas que IE8 no se mostrará correctamente y lo atribuirá a la peculiaridad del navegador? Realmente agradecería algo de ayuda en esto.


Si lo fuerza a volver a cargar en modo compatibilidad, ¿quiere decir que recibe una notificación flotante que dice algo así como: "Internet Explorer encontró un problema con esta página y la ha cargado en modo compatibilidad"?

Si es así, eso significa que has golpeado un error en IE. Llamado "Afirmación Difícil" significa que el motor de diseño colapsó (no un AV ni nada excitante, simplemente entró en un estado irrecuperable) y, por tanto, IE intenta proporcionar al usuario algo de contenido mediante el uso del motor de diseño anterior.

Si el problema persiste en IE9, presente un error en http://connect.microsoft.com/ie

¡Gracias!


Después de que un colega también realizara algunas búsquedas, encontramos esto aquí en SO , donde se ha confirmado que la altura máxima está causando una afirmación difícil en IE8, lo que confirma que, de hecho, es un error en IE8 cuando EricLaw publicó.

Estábamos usando max-height para el estilo del div en el que estábamos insertando el contenido y, a su vez, provocando la afirmación difícil. La pregunta vinculada anterior tiene una solución alternativa para cualquier persona que encuentre este problema.