Diese Funktion wird im Code aber über <body onload="... aufgerufen.
Die Variable ist also zum Zeitpunkt, zu dem du sie verwendest noch mit dem String belegt, den du ihr bei der Initialisierung zuweist.
das ist die Antwort die ich nicht gefunden habe. Ich bin davon ausgegangen, daß onload auch zu diesem Zeitpunkt an dem es im Text steht ausgeführt wird.
Dann würde sie nicht onload heißen. onload bedeutet nach dem laden, du brauchst diesen Event um auf Elemente deiner Seite zugreifen zu können, da diese ja erst nachdem der Browser sie geladen hat vorhanden sind.
Zum Ausprobieren kann ich dir nur noch einmal empfehlen,
habe ich ja in der Funktion nachr() gemacht. Das dieser zeitliche Zusammenhang besteht habe ich nicht bedacht. Es ist sogar so, daß 3 unbedeutende Zeilen vor diesem Aufruf (Kommentarende, Scriptende Tag, neue Zeile) die Variable e noch nicht gültig ist.
Die Anzahl der Zeilen ist da völlig unbedeutend. onload kann sehr lange dauern, je nach größe der enthaltenen Elemente (z.b. bilder)
2 Dinge gelernt:
- Bei Objektorientierter Programmierung sind textlicher und zeitlicher Ablauf nicht synchron.
Was hat das eine mit den beiden anderen Dingen zu tun. Du hast einen Event Handler benutzt und dieser wird erst aufgerufen wenn der Event eintritt. Ansonsten werden JS Befehle immer nacheinander ausgeführt.
- Verwende bei der Initialisierung von Variablen nicht den Namen der Variablen zur Erkennung der Verarbeitung.
Der Satz ist ein bisschen unverständlich, du kannst jederzeit sowohl die existenz der Variabel prüfen z.b. mit typeof als auch den Wert (sofern sie deklariert wurde). Das ist auch ein vorgehen das man unbedingt einhalten sollte, eine Variabel immer prüfen ob den erwarteten Wert hat.
Struppi.