Window Management API

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die Fensterverwaltung API ermöglicht es Ihnen, detaillierte Informationen über die an Ihr Gerät angeschlossenen Bildschirme zu erhalten und Fenster einfacher auf bestimmten Bildschirmen zu platzieren, was den Weg für effektivere Multi-Screen-Anwendungen bereitet.

Konzepte und Nutzung

Historisch haben wir Window.open() verwendet, um Browserfenster in Bezug auf die aktuelle Anwendung zu verwalten – neue Fenster zu öffnen, bestehende Fenster zu vergrößern und zu schließen usw. Zum Beispiel, um ein 400×300-Fenster 50 Pixel vom linken und oberen Rand Ihres Bildschirms zu öffnen:

js
const myWindow = window.open(
  "https://example.com/",
  "myWindow",
  "left=50,top=50,width=400,height=300",
);

Sie können Informationen über Ihren Bildschirm über die Eigenschaft Window.screen abrufen, zum Beispiel, wie viel Bildschirmplatz Sie zur Verfügung haben, um Fenster zu platzieren.

Die obigen Funktionen sind jedoch begrenzt. Window.screen gibt nur Daten über den primären Bildschirm zurück und nicht über sekundäre Bildschirme, die einem Gerät zur Verfügung stehen. Um ein Fenster auf einen sekundären Bildschirm zu verschieben, könnten Sie Window.moveTo() verwenden, aber Sie müssten raten, welche Koordinaten verwendet werden sollen, basierend darauf, wo es in Ihrem Setup relativ zum primären Bildschirm platziert ist.

Die Fensterverwaltung API bietet eine robustere, flexiblere Fensterverwaltung. Sie ermöglicht es Ihnen, zu überprüfen, ob Ihr Display mit mehreren Bildschirmen erweitert ist, und Informationen über jeden Bildschirm separat zu erhalten: Fenster können dann nach Wunsch auf jedem Bildschirm platziert werden. Sie bietet auch Ereignishandler, um auf Änderungen der verfügbaren Bildschirme zu reagieren, neue Vollbildfunktionen, um auszuwählen, welchen Bildschirm Sie (falls vorhanden) in den Vollbildmodus versetzen möchten und Berechtigungsfunktionen, um den Zugriff auf die API zu steuern.

Details zur Verwendung finden Sie unter Using the Window Management API.

Hinweis: In modernen Browsern ist aus Sicherheitsgründen ein separates Nutzer-Geste-Ereignis für jeden Window.open()-Aufruf erforderlich. Dies verhindert, dass Websites Benutzer mit vielen Fenstern bombardieren. Dies stellt jedoch ein Problem für Anwendungen mit mehreren Fenstern dar. Um diese Einschränkung zu umgehen, können Sie Ihre Anwendungen so gestalten, dass sie jeweils nur ein neues Fenster öffnen, vorhandene Fenster wiederverwenden, um verschiedene Seiten anzuzeigen, oder Benutzer darüber informieren, wie sie ihre Browsereinstellungen aktualisieren können, um mehrere Fenster zuzulassen.

Anwendungsfälle

Die Fensterverwaltung API ist nützlich in Fällen wie:

  • Multi-Window-Grafikeditoren und Audioprozessoren, die vielleicht Bearbeitungswerkzeuge und Panels auf verschiedene Bildschirme verteilen möchten.
  • Virtuelle Handelsplätze, die Markttendenzen in mehreren Fenstern zeigen und bestimmte interessante Fenster im Vollbildmodus anzeigen möchten.
  • Präsentationsanwendungen, die Referentennotizen auf dem internen Primärbildschirm und die Präsentation auf einem externen Projektor anzeigen möchten.

Integration der Berechtigungspolitik

Die window-management Berechtigungspolitik kann verwendet werden, um die Berechtigung zur Nutzung der Fensterverwaltung API zu steuern. Speziell:

Entwickler können einem <iframe> ausdrücklich die Berechtigung geben, die Fensterverwaltung zu nutzen, indem sie das allow-Attribut verwenden:

html
<iframe src="3rd-party.example" allow="window-management"></iframe>

Schnittstellen

ScreenDetails Sicherer Kontext

Repräsentiert die Details aller der Geräte des Nutzers zur Verfügung stehenden Bildschirme.

ScreenDetailed Sicherer Kontext

Repräsentiert detaillierte Informationen über einen bestimmten Bildschirm, der dem Gerät des Nutzers zur Verfügung steht.

Erweiterungen für andere Schnittstellen

Das Screen-change-Ereignis Sicherer Kontext

Wird ausgelöst, wenn sich ein bestimmter Bildschirm in irgendeiner Weise ändert, beispielsweise verfügbare Breite oder Höhe oder Orientierung.

Screen.isExtended Sicherer Kontext

Eine boolesche Eigenschaft, die true zurückgibt, wenn das Gerät des Nutzers über mehrere Bildschirme verfügt, und false, wenn nicht.

Element.requestFullscreen(), die screen-Option

Gibt an, auf welchem Bildschirm Sie das Element im Vollbildmodus anzeigen möchten.

Window.getScreenDetails() Sicherer Kontext

Gibt ein Promise zurück, das mit einer ScreenDetails-Objektinstanz erfüllt wird.

Beispiele

Vollständige Beispiele finden Sie hier:

Spezifikationen

Specification
Window Management

Browser-Kompatibilität