Rudgar: Im IE aus einem iframe eine css in den head des parents hängen?

Ahoy!

Situation:
In einem nicht von mir selbst betriebenen System werden vom User (= mir) erzeugte/eingegebene Inhalte in das <body>-Tag eines eigenen Dokuments gepackt und dieses dann im iframe eines anderen Dokuments angezeigt. Beide Dokumente liegen auf derselben Domain.

Nun versuche ich vom im iframe eingebetteten Dokument aus, das Aussehen des Parents mit einem Javascript zu verändern, das dem <head>-Tag des Parents ein css-file anhängen soll:

  
<script type='text/javascript' >  
if (parent.document.getElementsByTagName('head')[0])  
{  
  var htmlNode = document.createElement('link');  
  htmlNode.rel = 'stylesheet';  
  htmlNode.type = 'text/css';  
  htmlNode.href = 'http://www.mydomain.tld/css/productpage.css';  
  parent.document.getElementsByTagName('head')[0].appendChild(htmlNode);  
 }  
</script>  

Dieses Script sitzt innerhalb des <body>-tags des im iframe angezeigten Dokuments, das CSS-File auf einer ganz anderen Domain als die beiden Dokumente.
Funtioniert alles wunderbar, nur im IE wieder mal nicht. Der bringt eine Fehlermeldnung "Ungültiges Argument" zum appendChild. Warum??

Mir geht es nicht nur um eine "irgendwie" funktionierende Lösung, sonder auch darum, das "warum?" zu begreifen. Welche Macke vom IE entzieht sich hier meiner Kenntnis?

[Randbemerkung: andere User gehen her und schreiben ihre CSS-Anweisungen für das gesamte Parent-Dokument als <style>-Tag in einen string, den sie dann mit innerHTML in ein bereits existierendes <h2>-tag des Parents setzen. Das funktioniert zwar im IE, schien mir aber sehr unelegant.]

Gruß und Dank im Voraus,
Ich

  1. Hi,

    if (parent.document.getElementsByTagName('head')[0])
    {
      var htmlNode = document.createElement('link');

    Du erzeugst das Element in einem anderen Dokument als in dem, in dem es eingehängt werden soll.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Ahoy Andreas!

      Danke, das war's! :)
      Hätte ich auch selbst d'rauf kommen können. ;-)

      Gruß, Ich