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:
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:
- Die Nutzung der Methode
Window.getScreenDetails()
. Wenn blockiert, wird derenPromise
mit einemNotAllowedError
-Ausnahme abgelehnt. - Die Abfrage der Eigenschaft
Window.screen.isExtended
. Wenn blockiert, gibt sie immerfalse
zurück.
Entwickler können einem <iframe>
ausdrücklich die Berechtigung geben, die Fensterverwaltung zu nutzen, indem sie das allow
-Attribut verwenden:
<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, undfalse
, wenn nicht. Element.requestFullscreen()
, diescreen
-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 einerScreenDetails
-Objektinstanz erfüllt wird.
Beispiele
Vollständige Beispiele finden Sie hier:
- Grundlegende Multi-Window-Lernumgebung (siehe den Quellcode).
- Multi-Window-Plattformspiel (siehe den Quellcode).
- Fensterplatzierungs-Demo (siehe den Quellcode).
Spezifikationen
Specification |
---|
Window Management |