setTimeout();

Ich habe mich eben gewundert, weshalb in einem Projekt die setTimeout-Methode nicht mehr funktioniert hat, obwohl sie das vor 2 Monaten noch tat.

Der Grund: ich habe beim Aufruf die Funktion, die ich verzögern wollte, nicht als String übergeben. Geht ja auch nicht wirklich aus der Doku hervor, dass das nötig ist - und kurioser Weise haben diverse Browser auf verschiedenen Windows-Installationen von 2000 und XP bis 2003 Server auch keinen Fehler ausgespuckt.

Jedenfalls verhält sich setTimeout() ähnlich wie eval(), d.h. der als String übergebene Code wird entsprechend ausgeführt.

Falsch: window.setTimeout(window.self.close(),250);
Richtig: window.setTimeout("window.self.close()",250);

Thomas