Aquí está la situación. Tengo algo de JavaScript que tiene este aspecto:Forzar una actualización de DOM en Internet Explorer después de la manipulación de JavaScript ja
function onSubmit() {
doSomeStuff();
someSpan.style.display="block";
otherSpan.style.display="none";
return doLongRunningOperation;
}
Cuando hago esta forma presentar la acción, y ejecutarlo desde un navegador que no sea Internet Explorer, se intercambia rápidamente la visibilidad dos vanos y ejecutar la operación a largo Javascript. Si hago esto en IE, no hace el intercambio hasta después de que onSubmit() vuelva completamente.
puedo forzar un dom redibujar por pegar un cuadro de alerta de este modo:
function onSubmit() {
doSomeStuff();
someSpan.style.display="block";
otherSpan.style.display="none";
alert("refresh forced");
return doLongRunningOperation;
}
Además, la refactorización jQuery obvio no afecta el comportamiento de IE:
function onSubmit() {
doSomeStuff();
$("#someSpan").show();
$("#otherSpan").hide();
return doLongRunningOperation;
}
Este comportamiento existe en IE8 e IE6. ¿Hay alguna forma de forzar un redibujado del DOM en estos navegadores?
En primer lugar, ¿qué haces en el longRunningOperation? –
¿Ha intentado mover la visibilidad alternando a su propia función? – seth
longRunningOperation está haciendo la validación del formulario. La forma es grande en un pequeño subconjunto de casos. –