Mit Javascript kann man nicht prozedural programmieren!
-
Ich habe gerade stundenlang Ursachenforschung betrieben, was denn daran falsch ist:
<script type="text/javascript"> function test(parm1) { alert(parm1); } test("test"); </script>
...der Funktionsaufruf! Kann man Funktionen also nur durch events ausführen lassen? Dachte eigentlich, der würde das Script einfach durchparsen, so wie PHP z.b. auch.
-
Als HTML gespeichert und mit dem Firefox ausgeführt sehe ich die Messagebox.
Ist der Code vielleicht Bestandteil einer inkludierten JS-Datei? Wenn ja, währe etwas mehr Code im Kontext hilfreich um das Problem zu erkennen.
-
Wenn du unbedingt etwas direkt nach dem Laden der Website ausgeführt haben möchtest, bietet dir <body> doch den onLoad-Handler, den du dafür benutzen kannst.
-
Ändert man das Script aber nun so ab, dass die Funktion test() mit dem onload-Event aufgerufen wird, funktioniert es ohne Fehler:
<html> <head> <script type="text/javascript"> function test(parm1) { document.getElementById("text1").value = parm1; } //test("test"); </script> </head> <body onload="test('afksdf');"> <input type="text" id="text1"> </body> </html>
Woran liegt das??
-
Diese Spamkontrolle ist unüberwindbar für meinen Beitrag, also bitte hier rauf gehen:
http://rafb.net/p/3dLlq631.html
Vielleicht kann den Beitrag dann auch ein Mod für mich posten, ich hab es nicht hinbekommen.
-
Der Code im Root deines Javascript codes wird ausgeführt, wenn der Browser den JS Block geladen hat. Dies passiert idr. bevor der Teil im BODY überhaupt bekannt ist. Somit wird eine test-Funktion zwar aufgerufen, die getElementByid Funktionen liefern aber null zurück, da dass gesuchte Objekt noch nicht geladen wurde.
Du kannst das überprüfen, indem du den JS Block mal ans Ende der HTML Datei schreibst. Dann sollte es funktionieren.
Ein Body-onload Handler wird aufgerufen, wenn der komplette Body geladen wurde.
Klar soweit?
-
Headhunter schrieb:
Der Code im Root deines Javascript codes wird ausgeführt, wenn der Browser den JS Block geladen hat. Dies passiert idr. bevor der Teil im BODY überhaupt bekannt ist. Somit wird eine test-Funktion zwar aufgerufen, die getElementByid Funktionen liefern aber null zurück, da dass gesuchte Objekt noch nicht geladen wurde.
Du kannst das überprüfen, indem du den JS Block mal ans Ende der HTML Datei schreibst. Dann sollte es funktionieren.
Ein Body-onload Handler wird aufgerufen, wenn der komplette Body geladen wurde.
Klar soweit?
Ja, klingt logisch. Vielen Dank! :xmas1: