Manfred Renner: Netscape 6 und verschachtelte JavaScript-Dateien

Ich habe ein Script in einer externen JavaScript-Datei,
dass je nach Browser eine zweite JavaScript-Datei dynamisch einbindet. (Zur Unterscheidung zwischen Netscape6 und IE)

Das Problem das ich nun habe ist folgendes:
Netscape 6 kann ein DIV nicht per document.getElementById() ermitteln,
sobald das Element in einem der verschachtelten JavaScript-Dateien erstellt wird.

Die Dateien sind wie folgt:

Inhalt der Datei test.htm:
---------------------------
<script language="JavaScript" src="script.js">
</script>

Inhalt der Datei script.js:
---------------------------
if (document.all) {
 // IE-Code
} else if (!document.all && document.getElementById) {
 document.write('<script language="JavaScript" src="script_n6.js" type="text/javascript">\n</sc'+'ript>');
}

Inhalt der Datei script_n6.js:
---------------------------
 document.writeln("<span class='dynA' id='mItem1' style='background-color:#ff0000; width:200; padding:10px; left:10px;'>Tester</span>");
 tempItem = document.getElementById("mItem1");
 alert(tempItem);

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

Der alert-Befehl gibt daraufhin "null" aus.

Sieht hingegen die HTML-Datei test.htm wie folgt aus, gibt der alert-Befehl eine Referenz auf die DIV-Schicht aus:
---------------------------
<script language="JavaScript" src="script_n6.js">
</script>

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

Weiss jemand wieso das so ist?
Normalerweise muesste doch in BEIDEN Faellen eine Referenz auf die DIV-Schicht ausgegeben werde, oder?
Weiss jemand, wie man das umgehen kann?

P.S. Da die Syntax zwischen IE5 und NS6 aehnlich ist, habe ich den Code auch mit IE5 getestet, wo exakt das gleiche Problem auftritt...

  1. document.writeln("<span class='dynA' id='mItem1' style='background-color:#ff0000; width:200; padding:10px; left:10px;'>Tester</span>");
    tempItem = document.getElementById("mItem1");
    alert(tempItem);

    Vielleicht bin ich blind oder einfach daemlich, aber wo ist <div></div>

    Gruesse
    Wilhelm

    1. document.writeln("<span class='dynA' id='mItem1' style='background-color:#ff0000; width:200; padding:10px; left:10px;'>Tester</span>");
      tempItem = document.getElementById("mItem1");
      alert(tempItem);
      Vielleicht bin ich blind oder einfach daemlich, aber wo ist <div></div>

      Tut mir leid, hier habe ich mich vertan:
      In Beispiel oben ist es ein <span>-Tag - Das Problem tritt allerdings auch mit <div> auf... (sorry!)

  2. Hallo,

    entweder sollte es so klappen :

    document.writeln("<span class='dynA' id='mItem1' style='background-color:#ff0000; width:200; padding:10px; left:10px;'>Tester</span>");
    document.writeln("<script>tempItem = document.getElementById('mItem1')</scr"+"ipt>");
    document.writeln("<script> alert(tempItem);</scr"+"ipt>");

    oder die betr. function's dürfen erst per onload() aufgerufen werde.

    Grüsse

    Cyx23