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