fritz: appendChild im Header (browserspezifisch)

Beitrag lesen

Hallo Thomas,

innerHTML waere noch einen Test wert:
parent.frames["IFrame_Name"].document.getElementsByTagName("head")[0].innerHTML="<base target="_blank">";

Wenn man ein + vor der Zuweisung einfügt, kann man damit im Mozilla den Header ergänzen; analog zu appendChild steht´s dann zwar brav im DOM drin, eine entsprechende Reaktion gibt´s aber immer noch nicht (der IE weigert sich anscheinend gleich von vornherein, den HEAD des Subframes mittels innerHTML zu überschreiben).

Was witzigerweise tatsächlich funktioniert, und zwar in allen von mir getesteten Browsern, die innerHTML (kein Standard, wie wir wissen...) akzeptieren, ist die Kombination Deiner beiden Vorschläge:

//wir basteln uns ein neues Dokument...
h="<head>" + parent.frames["f2"].document.getElementsByTagName("head")[0].innerHTML + "<base target="_blank"></head><body>" + parent.frames["f2"].document.getElementsByTagName("body")[0].innerHTML + "</body>";
//und überschreiben einfach das alte komplett:
parent.frames["f2"].document.write(h);

Das kann man zwar noch verfeinern, indem man das <body>-Tag vor dem Plattmachen erstmal ausliest (outerHTML geht mit Mozilla nicht); trotzdem werd´ ich in den nächsten Tagen (Nächten) mal schaun, ob sich das nicht auch noch etwas näher an eine W3C-konforme Formulierung ranbringen läßt, und ggf. die Resultate - falls dieser Thread bis dahin nicht vom Archiv verschluckt wurde - hier nochmal posten.

vielen Dank für die Tips
bis dann
fritz