Feb

01

Der Bremser IE

By Dirk Bergles

Wieder mal bremst der IE alles aus.
Im WebUI und dem InlineEditing konnten wir eine Lösung finden, wie im Editor das identische Layout angezeigt werden kann.
Es werden einfach alle Parentelement des Body-divs und im HTML Header alle CSS Files in den IFrame kopiert.
Es stand schon im Dezember hier im Blog. Der Inhalt im Body Bereich konnte problemlos kopiert werden.
Dann war der Header dran. Einfach alle <link ...> von einem Dokument ins andere kopieren.
Im Prototyp mit JQuery und einem Einzeiler

$("head", doc).append($("head link").clone());

oder ausgeschrieben
if ((linkNodes[i].getAttribute("rel")=="stylesheet") & (linkNodes[i].getAttribute("type")=="text/css")) {
cloneLinkNode = linkNodes[i].cloneNode(true);
destHeadNode.appendChild(cloneLinkNode);
}
Keine Chance. Der IE liefert immer den Fehler ungültiges Argument in der Zeile appendChild(). Auch im JQuery Framework.
Nach kurzer Recherche scheint der IE hier einen Megabug zu haben. Über einen IFrame hinweg (offenbar auch bei Zugriff zwischen normalen Frames) funktioniert einfach die Methode appendChild() oder auch inserBefore() nicht.
In einem gezeigten Workaround wurde der neue Knoten im neuen Dokument im IFrame erzeugt und dieser konnte dann eingefügt werden. Aber das nützt ja nur bedingt etwas.
Offenbar scheinen auch innerHTML und outHTML zu funktionieren und so wird es wohl dieser Workaround werden.

Ach ja, eigentlich unnötig das extra zu erwähnen, aber im Firefox läuft es einfach nur reibunslos.
Im Endeffekt sollten wir alles direkt im IE entwickeln, denn der funktioniert einfach nicht. Aber die Entwicklungstools sind dermaßen schrottig, dass die Entwicklung zu sehr schmerzen würde. Hier müßen wir dringend mal nachbessern und dieses Entwicklungsloch schließen.



...(etwas später)....

Ich habe wirklich keine Lust mehr