Mirko: document.layers.xyz.document.write funktioniert nicht

Hi,

ich habe (zum Debuggen stark abgespeckt) folgenden Code:
<layer name=control visibility=show top=5 left=5>
Test 1
</layer>
<layer name="TckrTxt" visibility=show top=5 left=100>
Test 2
</layer>
<br>(Hintergrund)
<script language="JavaScript">
document.TckrTxt.document.open();
alert("Den Text bringt er noch");
document.TckrTxt.document.write("Dingens");
alert("Und hier ist aus :-(");
document.TckrTxt.document.close();
</SCRIPT>

Netscape (Navigator 4.08) bricht also beim write ohne eine Fehlermeldung (die Konsole ist auch leer) einfach ab.
Der alte Text bleibt aber auch stehen, er überschreibt also auch nicht nicht "aus Versehen" das Hauptdokument.
Ist das schonmal jemanden passiert, und vor allem: Warum?

Ciao,
Mirko

  1. Hallo Mirko!

    <script language="JavaScript">
    document.TckrTxt.document.open();
    alert("Den Text bringt er noch");
    document.TckrTxt.document.write("Dingens");
    alert("Und hier ist aus :-(");
    document.TckrTxt.document.close();
    </SCRIPT>

    Netscape (Navigator 4.08) bricht also beim write ohne eine Fehlermeldung (die Konsole ist auch leer) einfach ab.

    Es funktioniert wenn Du Deine JS-Anweisungen in eine Funktion schreibst und diese dann per onLoad aufrufst.

    Trotzdem etwas seltsam. Eigentlich sollte er auf den Layer zugreifen können, da er ja vor dem Script-Bereich definiert wird. Er ist aber anscheinend noch nicht vollständig geladen, wenn das Script ausgeführt wird, ein Indiz dafür ist dass das Wort "Hintergrund" erst geschrieben wird nachdem man die erste alert-Meldung weggeklickt hat und "Hintergrund" wird ja eigentlich auch vor dem Script definiert. Hoffe der Hinweis hilft Dir weiter.

    Gruß
    Mirko

    1. Hallo Mirko (noch so einer... ;))!

      Es funktioniert wenn Du Deine JS-Anweisungen in eine Funktion schreibst und diese dann per onLoad aufrufst.

      Jepp, funktioniert.

      Trotzdem etwas seltsam. Eigentlich sollte er auf den Layer zugreifen können, da er ja vor dem Script-Bereich definiert wird.

      Scheint wohl irgendwie fast die gleiche "Macke" zu sein, wie bei document.all.* beim Exploder...

      Er ist aber anscheinend noch nicht vollständig geladen, wenn das Script ausgeführt wird, ein Indiz dafür ist dass das Wort "Hintergrund" erst geschrieben wird nachdem man die erste alert-Meldung weggeklickt hat und "Hintergrund" wird ja eigentlich auch vor dem Script definiert.

      Schon seltsam... hatte ich noch gar nicht drauf geachtet...

      Hoffe der Hinweis hilft Dir weiter.

      Jo, thanx

      Ciao,
      Mirko