Struppi: setTimeout wartet nicht

Beitrag lesen

Steht so im mozilla developer center und funktioniert im FF auch. Die Beschreibung für setInterval dort ist ziemlich kärglich. Da ist noch nichtmal die Möglichkeit der Stringübergabe erwähnt.
Und auch obige Schreibweise nicht, funktioniert im FF aber auch auf setInterval.

Naja, der Punkt ist ja, dass bei Funktionsbeschreibungen nicht die Einzelheiten der Sprache erläutert werden müssen. Sondern lediglich das Funktionsprinzip.

Das Problem mit der globalen Variabel ist übrigens, dass du geschrieben hast:
window.setTimeout('macheRequest(url);', 3000);

D.h. es wird nach 3 Sekunden window.macheRequest(window.url); ausgeführt und deshalb muss url global sichtbar sein. (was in der ursprünglichen Frage auch so war, daher war dein Vorschlag nicht falsch)

Wenn url ein String ist, wäre es besser gewesen:
window.setTimeout('macheRequest("' + url + '");', 3000);

Jetzt wird der Inhalt von url als Stringparameter der Funktion übergeben.

Macht aber window.setTimeout( function() {macheRequest(url);}, 3000); auch, da hier eine neue anonyme Funktion erzeugt wird, die lediglich die gwünschte Funktion mit dem Parameter url aufruft. Hier kann url aber auch eine lokale Variabel in einer Funktion sein.

Wie bereits gepostet funktionierts im IE nicht.

Dann ist das mit den zusätzlichen Parametern, mit Vorsicht zu geniessen.

Struppi.

--
Javascript ist toll (Perl auch!)