Ich habe gerade unglaublich viel Zeit auf diesen absolut lächerlichen Fehler verschwendet (manifestiert nur in IE7), in der Webseite viel zu komplex, um den Code hier zu setzen, wo element.className = element.className
nicht funktionierte.
Die ultimative Lösung für IE7 (na ja, zumindest an der Stelle getestet Ich habe den Fehler aufgetreten) scheint ALL die Linien zu Ausführung unter als Haken auf alle DOM Änderungen:
try{
element.parentNode.style.cssText += "";
element.parentNode.style.zoom = 1;
element.style.cssText += "";
element.style.zoom = 1;
}catch(ex){}
Wir hatten bereits die ersten beiden Zeilen (umgeben von try-catch
) in unserem Framework für eine lange Zeit, aber es erwies sich in einem bestimmten Szenario als nicht ausreichend, aber das Hinzufügen der nächsten beiden reparierte dies.
Getestet sowohl im maximierten als auch im nicht maximierten Fenster.
try/catch
try/catch
ist vorhanden, da unter bestimmten Umständen (z. B. in einem iframe
) kann es einen JS-Fehler generieren, die die App (das ist Informationen von meinem Team Fellow, ich habe es selbst nicht getroffen).
Im Gegenteil, für IE8 scheint element.className = element.className
, seine Arbeit zu tun (ja, wir alle bedingten Code für jede Version lieben ...)
Ich liebe Win XP als Betriebssystem, aber bis IE-bound Leute benutzen es, wir müssen schmutzige Lösungen für solche verrückten Probleme finden ... Verdammt traurig.
bearbeiten 2013.03.05
Das Snippet oben schien in den meisten Szenarien zu arbeiten, war aber auch an einem Ort nicht genug.Jetzt haben wir solche Sachen in unserem Code:
try {
var s1 = domElt.parentNode.style, s2 = domElt.style;
var dummyCss = "foo:foo;"; // do not add leading ';' here!
s1.cssText += "";
s1.zoom = 1;
s2.cssText += dummyCss;
s2.cssText = s2.cssText.replace(dummyCss, "");
} catch (ex) {}
Ja! Dieses Problem betrifft Elemente direkt unter dem Text. Ich verwende also: document.body.className = document.body.className; Danke! –
Mmm ausgezeichnete Lösung - ein IE7 Reflow-Problem behoben Ich hatte – John
das. ist. genial. – allixsenos