JavaScript setTimeout Beispiel 2: Abgelaufene Zeit auf der Seite

Im nächsten Beispiel wird die Methode setTimeout dazu verwendet, nach einer gewissen Zeit eine Dialogbox mit der seit Aufruf der Seite vergangenen Zeit in Sekunden anzuzeigen. Nach Ablauf des Timeouts wird der Besucher gefragt, ob er weiterhin auf der Seite bleiben möchte oder das Fenster geschlossen werden soll. Das Script, dessen JavaScript-Code Sie unten sehen, wird in der zweiten setTimeout Demo vorgeführt.

Zu Beginn des Scripts wird die Verweilzeit in der Variablen timeOnPage auf 0 Sekunden gesetzt. Die darauf folgende Funktion showTimeOnPage erhöht später beim Aufruf der Funktion die vergangene Zeit um jeweils zehn Sekunden. Danach wird die durch die Dialogbox auszugebene Meldung zusammengestellt und in der Variablen meldung (ein String) gespeichert. Der darauf folgende Aufruf der Methode confirm des Window-Objekts öffnet einen Bestätigungs-Dialog mit der zuvor zusammengestellten Meldung. Diese Dialog-Box kann nun vom Benutzer mit "Ja" beantwortet werden, wenn er das Fenster schliessen möchte. In diesem Falle liefert die Methode confirm den Wert "true" zurück und die Dialog-Box wird mit der Methode close des Window-Objekts geschlossen. Klickt der Benutzer auf "Abbrechen", so wird erneut ein Timeout gestartet, nach dessen Ablauf die Funktion showTimeOnPage erneut aufgerufen wird. Der Letzte Aufruf der Methode setTimeout am Ende des Scripts sorgt dafür, dass die Funktion nach Ablauf von zehn Sekunden nach Laden der Seite gestartet wird.

<script language="javascript" type="text/javascript">
<!-- // JavaScript-Bereich für ältere Browser auskommentieren
// Variable zur Speicherung der bisher vergangenen Zeit auf der Seite
timeOnPage = 0;

// Funktion zählt die vergangene Zeit um 10 Sekunden hoch,
// gibt die bisher vergangene Zeit aus und fragt, ob der Vorgang
// beendet werden soll
function showTimeOnPage () {
  // es sind weitere 10 Sekunden vergangen
  timeOnPage += 10;
  // Meldung mit der vergangenen Zeit zusammenstellen
  meldung = 'Sie sind jetzt ' + timeOnPage + ' Sekunden' +
            'auf dieser Seite!\n' +
            'Soll das Fenster geschlossen werden?';
  // Dialog zur Bestätigung oder Ablehnung einer Aktion anzeigen
  // (Optionen "Ja" und "Abbrechen" stehen zur Verfügung)
  rval = window.confirm (meldung);
  // Wurde "Ja" angeklickt?
  if (rval == true)
    // Fenster schliessen
    window.close ();
  else
    // Weiterhin auf der Seite bleiben und den Timer fortsetzen
    window.setTimeout ('showTimeOnPage ()', 10 * 1000);
}

// Timer direkt nach Aufruf der Seite starten
window.setTimeout ('showTimeOnPage ()', 10 * 1000);
// -->
</script>



¬ Insolvenzrecht