Der Martin: window.onload function()

Beitrag lesen

Hallo,

Mache ich aber;
   window.onload = loadMsg('Das Laden war erfolgreich!','boxInfo');
klappt das auch und auch der Firebug meldet keinen Fehler.

das liegt an der zeitlichen Abfolge der einzelnen Schritte.

Ist das nun einfach eine syntaktisch falsche Schreibweise oder sollte man besser immer dann eher so arbeiten?

Es ist syntaktisch richtig, aber semantisch falsch. Was gibt denn deine Funktion loadMsg() zurück? Vermutlich gar nicht, also 'undefined'?

Auf jeden Fall passiert bei deinem Beispiel folgendes:
Das Dokument wird geladen, der Ladevorgang ist *noch nicht* abgeschlossen, da trifft der Browser auf die Javascript-Anweisung

window.onload = loadMsg('Das Laden war erfolgreich!','boxInfo');

Er ruft also loadMsg() auf und wartet darauf, dass jemand die Messagebox wieder schließt. Den Rückgabewert von loadMsg() - also "nichts" - legt er nun in window.onload ab. Erst dann wird die Bearbeitung des Dokuments fortgesetzt. Einen Moment später ist das Dokument fertig geladen, der Browser schaut nach, ob in window.onload etwas hinterlegt ist, was auszuführen wäre - und er stellt fest, da ist "nichts", also 'undefined'. Also kein onload, der Fall ist erledigt.

Deine Funktion wird also aufgerufen - aber nicht, wie gewünscht, nach dem Laden des Dokuments, sondern schon währenddessen.

So long,
 Martin

--
why the heck do you jerk think, that wir ein doppelposting nicht bemerken, wenn you zwischendurch the sprache wechselst?
  (wahsaga)