Hier ist die Situation. Ich habe einige Javascript, das wie folgt aussieht:Erzwingen einer DOM-Aktualisierung im Internet Explorer nach Javascript Dom Manipulation
function onSubmit() {
doSomeStuff();
someSpan.style.display="block";
otherSpan.style.display="none";
return doLongRunningOperation;
}
Als ich dies eine Form Aktion einreichen machen, und es aus einem nicht-IE-Browser ausführen, es schnell die zwei Spannweiten Sichtbarkeit austauscht und den langen Javascript-Betrieb laufen. Wenn ich dies in IE mache, macht es den Swap erst, nachdem onSubmit() vollständig zurückgegeben wurde.
ich ein dom neu gezeichnet durch Kleben eine Warnung zwingen kann, in etwa so:
function onSubmit() {
doSomeStuff();
someSpan.style.display="block";
otherSpan.style.display="none";
alert("refresh forced");
return doLongRunningOperation;
}
Auch die offensichtliche jquery Refactoring hat keinen Einfluss auf das Verhalten IE:
function onSubmit() {
doSomeStuff();
$("#someSpan").show();
$("#otherSpan").hide();
return doLongRunningOperation;
}
Dieses Verhalten gibt es auf IE8 und IE6. Gibt es trotzdem ein neues DOM in diesen Browsern zu erzwingen?
Erstens, was Sie in der longRunningOperation tun? –
Haben Sie versucht, die Sichtbarkeitsfunktion auf ihre eigene Funktion zu verschieben? – seth
longRunningOperation führt Formularvalidierung durch. Die Form ist in einer kleinen Teilmenge von Fällen groß. –