zurück weiter

Der Befehl window.setTimeout

Wie du siehst, siehst du nichts außer der Übeschrift und diesem Text. Wenn du 10 Sekunden gewartet hast, bekommst du die Meldung, dass du 10 Sekunden auf dieser Seite warst.

Hier sind 2 Dinge interessant:

  1. Der Befehl window.setTimeout(' ', )
  2. Befehl außerhalb einer Funktion

Der Name sagt eigentlich alles: Setze für eine bestimmte Zeit mit dem Abarbeiten von Befehlen aus.
window.setTimeout(' ', ) ist eine von Java-Script vorgefertigte Funktion, die in ihren Klammern 2! Parameter verlangt, getrennt durch ein Komma. Also:

window.setTimeout(irgendeine Funktion, Zeit in Millisekunden).

Beispiel:

window.setTimeout('Hinweis()'10000) ruft die Funktion Hinweis() nach 10000 Millisekunden = 10 Sekunden auf.

  1. window.setTimeout(' ', ) kann außerhalb einer Funktion stehen! Das heißt: Beim Öffnen der Datei wird automatisch diese Funktion vom Browser gelesen, sie musst allerdings zwischen <script language="JavaScript"> und </script> stehen.
  2. window.setTimeout(' ', ) kann aber auch innerhalb einer Funktion stehen und eine andere Funktion nach einer vorgegebenen Zeit aufrufen.
  3. window.setTimeout(' ', ) kann aber auch innerhalb einer Funktion stehen und diese selbst nach einer vorgegebenen Zeit aufrufen. Das ergibt dann eine Schleife, d. h. eine Funktion, ist sie einmal gestartet, ruft sich in regelmäßigen Abständen immer wieder selbst auf. Diese Art von Funktionsaufruf nennt man rekursiv.

    Vorsicht: Diese Schleife läuft solange, bis man die Seite verlässt!

Beispiele:

zu 1. window.setTimeout außerhalb einer Funktion: Die Funktion für diese Seite!

<script language="JavaScript">
function Hinweis () {
alert("Sie sind jetzt schon 10 Sekunden auf dieser Seite!");
}
//Diese Schweifklmanner beendet die Funktion Hinweis()! window.setTimeout("Hinweis()", 1000);//window.setTimeout("Hinweis()", 1000) außerhalb eine Funktion!
</script>

zu 2. window.setTimeout ruft eine 2. Funktion zeitverzögert auf.

<script language="JavaScript">
function eins(){ // 1. Funktion, die z. B. durch ein onClick="eins()" aufgerufen wird.
alert('Du bist in der Funktion, die durch deinen Mausklick aufgerufen wird.\n Es vergehen 2 Sekunden!')
window.setTimeout('zwei()',2000)
} function zwei(){ //2. Funktion, die durch window.setTimeout('zwei()',2000) aufgerufen wird.
alert('Du bist in der Funktion, die durch window.setTimeout(´´zwei()´´,2000) aufgerufen wird.')
}
</script>

Wenn du diese Funktionen in eine Html-Datei kopierst und im body einen onclick-Befehl erstellst, müsste dies eigentlich funktionieren.

Ich hab's probiert: es funzt!

zu 3. Rekursive Schleife mit window.setTimeout

<script language="JavaScript">
function eins(){ //Funktion, die z. B. durch ein onClick="eins()" aufgerufen wird.
alert('Du bist in der Funktion, die durch deinen Mausklick aufgerufen wird.\n Es vergehen 5 Sekunden, \ndann erscheint dieses Fenster erneut!')
window.setTimeout('eins()',5000)
}
</script>

Wie du siehst, ruft window.setTimeout('eins()',5000) alle 5 Sekunden die Funktion auf, in der es selbst steht.
Das geht so lange, bis du die Seite verlässt! Verkürze also in einer Datei mit diesem Code die Sekunden-Dauer nicht zu sehr, sonst schaffst du es nicht, die Seite zu verlassen, weil immer gleich wieder das alert-Fenster erscheint!!!

Du hast gelernt:

  1. Mit dem Befehl window.setTimerout(´ ´,) kann man eine Funktion zeitverzögert aufrufen.
  2. Mit dieser Funktion kann man dieselbe Funktuionb immer wieder aufrufen.
  3. Einige vorgefertigte Java-Funktionen können außerhalb einer Funktion aufgerufen werden. Sie starten dann mit dem Aufruf des Fensters.

Wenn du zum letzten Punkt mehr wissen willst: Es sind vorgefertigte Java-Funktionen, die mit window. beginnen.
Einige Befehle lassen sich auch mit document. aufrufen, so z. B. document.bgColor = '' Achte auf die richtige Groß-/Kleinscheibung von bgColor!

Noch mehr wissen? Hier!

Kurztest:
Schreib den window.setTimeout-Befehl auf. Achte auf Groß-/Kleinschreibung!
Bitte setzte in die Rundklammern nichts, sonst funktioniert die Testabfrage nicht.
Der 2. Parameter des setTimeout-Befehl enthält die Verzögerung in ...   =>

 

zurück weiter