Anatol: Internet Explorer: firstChild is null or not an object

Beitrag lesen

Hi Forum,

Ich habe ein kleines Problem mit dem Internet Explorer. Ich moechte mit Javascript den Inhalt eines <style> tags ersetzen. Der Javascript Code ist ziemlich einfach:

--------------------------------------------------

function update_css(input) {  
 document.getElementsByTagName("style")[0].firstChild.data = '<!--'+input+'-->';  
}

--------------------------------------------------

Wie immer funktioniert das auch gut in Firefox, Google Chrome und Safari. Und wie immer bereitet der Internet Explorer Probleme. Dort bekomme ich die Fehlermeldung:

'document.getElementByTagName(...).0.firstChild' is null or not an object

Die alternative Schreibweise mit
document.getElementsByTagName("style").item(0).firstChild.data
fuehrt zum selben Resultat.

Hier ist ein HTML Beispiel, das in Firefox etc... aber nicht in IE funktioniert:

--------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr">  
 <head>  
  <title>Test</title>  
  <meta http-equiv="Content-type" content="text/html; charset=utf-8" />  
  <script src="test.js" type="text/javascript"></script>  
  <style type="text/css"><!-- --></style>  
 </head>  
 <body>  
  <div>  
   <textarea id="editor_1" rows="8" cols="80" onchange="update_css(this.value);">h1 {  
 color: #ff0000;  
}</textarea>  
  </div>  
  <h1>Test sample</h1>  
  <p>Test paragraph</p>  
 </body>  
</html>

--------------------------------------------------

In diesem Fall wird das CSS im Textfeld auf die HTML-Seite angewendet.

Falls irgendjemand einen Weg kennt oder eine Idee hat, dies auch im IE zu ermoeglichen waere ich sehr dankbar.

Schoene Gruesse!
Anatol