Axel Richter: setTimeout funktioniert in Mozilla, im IE aber nicht

Beitrag lesen

Hallo,

ich habe hier ein obskures Problem mit dem Internet Explorer und setTimeout.

Ich mache folgendes (ausschnittsweise):

<html>
<head>

<script language="javascript">
// Display a progress meter element
function showProgress()
{
    document.write(".<wbr>");

^Hiermit wird ein neues Dokument begonnen. In diesem gibt es die Funktion showProgress() nicht mehr.

tout = window.setTimeout("showProgress()",500);

^Error Objekt erwartet im IE und etwas ausführlicher:
Fehler: showProgress is not defined
Quelldatei: xyz
Zeile: x
in der JavaScript-Konsole des Mozilla.

}

</script>

Ich starte also hier unten per setTimeout mit 1 Millisekunde Verzögerung die Funktion showProgress. showProgress startet nun seinerseits wiederum setTimeout mit 500 Millisekunden und ruft sich selber auf. Ergebnis: Alle 0,5 Sekunden wird mir ein Punkt ausgegeben.

Mit Sicherheit nicht.

Fast alles funktioniert in Mozilla und dem IE perfekt. Der IE scheint allerdings ein Problem mit dem ersten setTimeout-Aufruf zu haben. Er meldet immer, dass in Zeile 1 und Spalte 1 ein Objekt erwartet wird. Der ganze Rest mit dem Austauschen des Inhalts usw. verläuft danach dann weiterhin fehlerfrei.

Du erlaubst, dass ich das bezweifle?

Schreibe in Dein Dokument ein HTML-Element (z.B. ein DIV) mit einer ID. Nutze die Methode getElementById() und appendData http://selfhtml.teamone.de/javascript/objekte/node.htm#append_data, um die Punkte einzufügen, statt mit document.write ein neues Dokument zu beginnen.

viele Grüße

Axel