Hallo Felix,
und diese Funktion könnte noch nicht verfügbar sein, weil sie erst im nächsten <script>-Element definiert wird
Ja, da war noch was. Ich hatte mich heute mittag mit dem Thema befasst, und mich blödsinnigerweise gewundert, warum
window.onload = "foo()";
nicht funktioniert. Ohne Worte - wie Matthias so gern sagt 😉
Darüber hab ich das Scope-Thema dann vergessen.
Du hast natürlich recht, wenn die Funktion in einem Script-Block definiert wird, der hinter dem Script-Block liegt, in dem onload zugewiesen wird, dann gibt's die Funktion noch nicht.
Innerhalb eines Scriptblocks findet die übliche Hebung von function und var Deklarationen statt, d.h.
window.onload = foo;
function foo() {
alert("Foohoo!");
}
funktioniert. Aber weil der Browser die Scriptblöcke so ausführt, wie sie kommen, klappt es in zwei Scriptblöcken nur dann, wenn die Definition der Funktion gelaufen ist, bevor onload zugewiesen wird.
Rolf
sumpsi - posui - obstruxi