Tengo una solicitud de Ajax que arroja resultados de búsqueda, y estoy creando dinámicamente elementos de DOM para mostrar esos resultados. Esto funciona como se esperaba en todos los navegadores que probé excepto IE8.Los elementos dinámicos no aparecen en IE8 hasta que haga clic con el ratón
La solicitud vuelve correctamente, el JavaScript se está ejecutando correctamente y los elementos se están creando, pero los elementos no se muestran en la página. Solo aparecen después de hacer clic con el mouse en algún lugar de la página.
Ejecuté una prueba rápida que ejecutaba el código de devolución de llamada sin la solicitud de Ajax, y se comportó como se esperaba allí. Así que me pregunto si esto tiene algo que ver con la forma en que IE8 está administrando el hilo de devolución de llamada. ¿Alguien más ha visto un comportamiento como este o tiene alguna idea al respecto?
La devolución de llamada es fundamentalmente muy simple. He reproducido con esto:
function catchResults(response) {
var contentBlock = document.getElementById('divResults');
var divResults = document.createElement('div');
var txt = document.createTextNode("Results");
divResults.appendChild(txt);
contentBlock.appendChild(divResults);
}
estoy usando JQuery.ajax para realizar la llamada. He visto el comportamiento correcto en Firefox y Chrome.
¡Gracias por la ayuda!
me encontré con esta respuesta para un problema similar - el elemento simplemente no se presentó. Si cambiara alguna de sus propiedades en la ventana de herramientas del desarrollador, aparecería. Esta técnica resolvió el problema. –
Rosco, eres un genio. Eso lo arregló como un encanto. ¿Conoces alguna documentación de este problema? ¿Es intencional? ¡Gracias por tu ayuda! – TwainJ
Me alegro de escucharlo =). No recuerdo dónde vi este error documentado o lo siento. Sin embargo, estoy bastante seguro de que no es un comportamiento intencionado. – Ross