Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Dokument: visibilitychange-Ereignis

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit April 2021 browserübergreifend verfügbar.

Das visibilitychange-Ereignis wird am Dokument ausgelöst, wenn sich dessen Sichtbarkeitsstatus ändert – beispielsweise, wenn ein Benutzer zu einem anderen Browser-Tab wechselt, eine neue Seite aufruft, den Browser minimiert oder schließt oder auf einem Mobilgerät zu einer anderen App wechselt.

Das Ereignis kann nicht abgebrochen werden.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("visibilitychange", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft des Interfaces zuweisen:

js
onvisibilitychange = (event) => { }

Ereignistyp

Ein generisches Event.

Hinweise zur Verwendung

Das Ereignis enthält nicht den aktualisierten Sichtbarkeitsstatus des Dokuments. Sie können diese Information jedoch über die Eigenschaft visibilityState des Dokuments abrufen.

Dieses Ereignis wird mit einem visibilityState von hidden ausgelöst, wenn ein Benutzer eine neue Seite aufruft, den Tab wechselt oder schließt, den Browser minimiert oder schließt oder auf einem Mobilgerät vom Browser zu einer anderen App wechselt. Der Übergang zu hidden ist das letzte Ereignis, das die Seite zuverlässig beobachten kann. Entwickler sollten ihn daher als wahrscheinliches Ende der Benutzersitzung behandeln, beispielsweise um Analysedaten zu senden.

Der Übergang zu hidden ist auch ein guter Zeitpunkt, um Aktualisierungen der Benutzeroberfläche und Aufgaben anzuhalten, die der Benutzer nicht im Hintergrund weiterlaufen lassen möchte.

Beispiele

Musikwiedergabe beim Übergang zu hidden pausieren

Dieses Beispiel pausiert die Audiowiedergabe, wenn die Seite ausgeblendet wird, und setzt sie fort, sobald die Seite wieder sichtbar ist. Ein vollständiges Beispiel finden Sie in der Dokumentation zur Page Visibility API: Audiowiedergabe beim Ausblenden der Seite pausieren.

js
document.addEventListener("visibilitychange", () => {
  if (document.hidden) {
    playingOnHide = !audio.paused;
    audio.pause();
  } else if (playingOnHide) {
    // Resume playing if audio was "playing on hide"
    audio.play();
  }
});

Analysedaten zum Sitzungsende beim Übergang zu hidden senden

Dieses Beispiel behandelt den Übergang zu hidden als Ende der Benutzersitzung und sendet die entsprechenden Analysedaten über die API Navigator.sendBeacon():

js
document.onvisibilitychange = () => {
  if (document.visibilityState === "hidden") {
    navigator.sendBeacon("/log", analyticsData);
  }
};

Spezifikationen

Spezifikation
HTML
# event-visibilitychange
HTML
# handler-onvisibilitychange

Browser-Kompatibilität

Siehe auch