Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die Page Visibility API bietet Ereignisse, die Sie überwachen können, um zu wissen, wann ein Dokument sichtbar oder verborgen wird, sowie Funktionen, um den aktuellen Sichtbarkeitszustand der Seite zu betrachten.
Dies ist besonders nützlich, um Ressourcen zu sparen und die Leistung zu verbessern, indem eine Seite unnötige Aufgaben vermeidet, wenn das Dokument nicht sichtbar ist.
Wenn der Benutzer das Fenster minimiert, zu einem anderen Tab wechselt oder das Dokument vollständig von einem anderen Fenster verdeckt wird, sendet die API ein visibilitychange Ereignis, um den Zuhörern mitzuteilen, dass sich der Zustand der Seite geändert hat. Sie können das Ereignis erkennen und einige Aktionen ausführen oder sich anders verhalten. Zum Beispiel kann Ihre Web-App, wenn sie ein Video abspielt, das Video pausieren, wenn der Benutzer den Tab in den Hintergrund stellt, und es fortsetzen, wenn der Benutzer zum Tab zurückkehrt. Der Benutzer verliert nicht seinen Platz im Video, der Soundtrack des Videos interferiert nicht mit dem Ton im neuen Vordergrund-Tab, und der Benutzer verpasst nichts vom Video.
Die Sichtbarkeitszustände eines <iframe> sind die gleichen wie beim übergeordneten Dokument. Das Verstecken eines <iframe> mit CSS-Eigenschaften (wie z.B. display: none;) löst keine Sichtbarkeitsereignisse aus und ändert nicht den Zustand des Dokuments innerhalb des Frames.
Betrachten wir einige Anwendungsfälle für die Page Visibility API.
Entwickler haben historisch gesehen unvollkommene Stellvertreter verwendet, um dies zu erkennen. Beispielsweise hilft das Überwachen der blur und focus Ereignisse im Fenster zu wissen, wann Ihre Seite nicht die aktive Seite ist, aber es sagt Ihnen nicht, dass Ihre Seite tatsächlich für den Benutzer verborgen ist. Die Page Visibility API greift dieses Problem auf.
Hinweis: Während onblur und onfocus Ihnen sagen, ob der Benutzer Fenster wechselt, bedeutet das nicht unbedingt, dass es verborgen ist. Seiten werden nur versteckt, wenn der Benutzer Tabs wechselt oder das Browserfenster mit dem Tab minimiert.
Unabhängig von der Page Visibility API haben Benutzeragenten typischerweise eine Reihe von Richtlinien, um die Leistungsauswirkungen von Hintergrund- oder versteckten Tabs zu mindern. Dazu können gehören:
Einige Prozesse sind von diesem Drosselungsverhalten ausgenommen. In diesen Fällen können Sie die Page Visibility API verwenden, um die Leistungswirkung der Tabs zu reduzieren, während sie verborgen sind.
Die Page Visibility API fügt der Document Schnittstelle die folgenden Eigenschaften hinzu:
Document.hidden SchreibgeschütztGibt true zurück, wenn die Seite in einem Zustand ist, der als dem Benutzer verborgen gilt, und ansonsten false.
Document.visibilityState SchreibgeschütztEin String, der den aktuellen Sichtbarkeitszustand des Dokuments angibt. Mögliche Werte sind:
visibleDer Seiteninhalt kann zumindest teilweise sichtbar sein. In der Praxis bedeutet dies, dass die Seite der Vordergrund-Tab eines nicht-minimierten Fensters ist.
hiddenDer Seiteninhalt ist für den Benutzer nicht sichtbar, entweder weil sich der Tab des Dokuments im Hintergrund befindet oder Teil eines minimierten Fensters ist, oder weil der Bildschirm des Geräts ausgeschaltet ist.
Die Page Visibility API fügt der Document Schnittstelle die folgenden Ereignisse hinzu:
visibilitychangeWird ausgelöst, wenn der Inhalt eines Tabs sichtbar geworden ist oder verborgen wurde.
Dieses Beispiel pausiert das Abspielen von Audio, wenn die Seite verborgen wird, und setzt das Abspielen fort, wenn die Seite wieder sichtbar wird. Die Steuerungen des <audio>-Elements erlauben es dem Benutzer, zwischen Abspielen und Pausieren des Audios umzuschalten. Das boolesche playingOnHide wird verwendet, um zu verhindern, dass Audio abgespielt wird, wenn die Seite in einen sichtbaren Zustand wechselt, aber das Medium beim Verbergen der Seite nicht abgespielt wurde.
| HTML # dom-document-visibilitystate |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.