Element: requestFullscreen() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die Element.requestFullscreen()
-Methode sendet eine asynchrone Anfrage, um das Element im Vollbildmodus anzuzeigen.
Es ist nicht garantiert, dass das Element tatsächlich in den Vollbildmodus wechselt. Wenn die Berechtigung, in den Vollbildmodus zu wechseln, erteilt wird, wird das zurückgegebene Promise
aufgelöst und das Element erhält ein fullscreenchange
-Ereignis, um zu signalisieren, dass es sich nun im Vollbildmodus befindet. Wenn die Berechtigung verweigert wird, wird das Promise abgelehnt und das Element erhält stattdessen ein fullscreenerror
-Ereignis. Wenn das Element vom ursprünglichen Dokument getrennt wurde, erhält das Dokument diese Ereignisse stattdessen.
Syntax
requestFullscreen()
requestFullscreen(options)
Parameter
options
Optional-
Ein Objekt, das das Verhalten des Wechsels zum Vollbildmodus steuert. Die verfügbaren Optionen sind:
-
Steuert, ob die Navigations-Benutzeroberfläche angezeigt werden soll, während das Element im Vollbildmodus ist. Der Standardwert ist
"auto"
, was bedeutet, dass der Browser entscheiden soll, was zu tun ist."hide"
-
Die Navigationsoberfläche des Browsers wird ausgeblendet und die gesamten Abmessungen des Bildschirms werden zur Anzeige des Elements genutzt.
"show"
-
Der Browser zeigt Seitennavigationskontrollen und möglicherweise andere Benutzeroberflächen an; die Abmessungen des Elements (und die wahrgenommene Größe des Bildschirms) werden eingeschränkt, um Platz für diese Benutzeroberfläche zu lassen.
"auto"
-
Der Browser wählt aus, welche der obigen Einstellungen angewendet wird. Dies ist der Standardwert.
screen
Optional Experimentell-
Bestimmt, auf welchem Bildschirm Sie das Element im Vollbildmodus anzeigen möchten. Dies verwendet ein
ScreenDetailed
-Objekt als Wert, das den gewählten Bildschirm darstellt.
-
Rückgabewert
Ein Promise
, das mit dem Wert undefined
aufgelöst wird, wenn der Übergang in den Vollbildmodus abgeschlossen ist.
Ausnahmen
Anstelle einer herkömmlichen Ausnahme wirft das requestFullscreen()
-Verfahren bei Fehlerbedingungen keine „Throw“-Ausnahme, sondern lehnt das zurückgegebene Promise
ab. Der Ablehnungs-Handler erhält einen der folgenden Ausnahme-Werte:
TypeError
-
Die
TypeError
-Ausnahme kann in einer der folgenden Situationen auftreten:- Das Dokument, das das Element enthält, ist nicht vollständig aktiv; das heißt, es ist nicht das derzeit aktive Dokument.
- Das Element befindet sich nicht in einem Dokument.
- Dem Element ist es nicht gestattet, das
fullscreen
-Feature zu verwenden, entweder aufgrund von Permissions Policy-Konfiguration oder anderer Zugriffskontrollfunktionen. - Das Element und sein Dokument sind derselbe Knoten.
- Das Element ist ein Popover, das bereits über
HTMLElement.showPopover()
angezeigt wird.
Sicherheit
Vorübergehende Benutzeraktivierung ist erforderlich. Der Benutzer muss mit der Seite oder einem UI-Element interagieren, damit dieses Feature funktioniert.
Verwendungshinweise
Kompatible Elemente
Ein Element, das Sie im Vollbildmodus darstellen möchten, muss einige einfache Anforderungen erfüllen:
- Es muss eines der Standard-HTML-Elemente oder ein
<svg>
oder<math>
sein. - Es ist kein
<dialog>
-Element. - Es muss entweder im obersten Dokument oder in einem
<iframe>
verortet sein, das das Attributallowfullscreen
hat.
Zusätzlich müssen alle festgelegten Berechtigungsrichtlinien die Nutzung dieser Funktion zulassen.
Erkennung der Vollbildaktivierung
Sie können feststellen, ob Ihr Versuch, in den Vollbildmodus zu wechseln, erfolgreich war, indem Sie das zurückgegebene Promise
von requestFullscreen()
verwenden, wie in den Beispielen unten gezeigt.
Um zu erfahren, wann anderer Code den Vollbildmodus umschaltet, sollten Sie Listener für das fullscreenchange
-Ereignis auf dem Document
einrichten. Es ist auch wichtig, auf fullscreenchange
zu achten, um zu wissen, wann beispielsweise der Benutzer den Vollbildmodus manuell umschaltet oder Anwendungen wechselt, wodurch Ihre Anwendung vorübergehend den Vollbildmodus verlässt.
Beispiele
Anfordern des Vollbildmodus
Dieses Beispiel schaltet das <video>
-Element in den Vollbildmodus um, wenn die Tasten Enter oder Shift + F gedrückt werden.
Das Skript überprüft, ob das Dokument derzeit im Vollbildmodus ist, indem es document.fullscreenElement
verwendet.
Wenn das Dokument im Vollbildmodus ist, wird document.exitFullscreen()
aufgerufen, um den Modus zu verlassen.
Andernfalls wird requestFullscreen()
auf dem <video>
-Element aufgerufen:
const video = document.querySelector("video");
document.addEventListener("keydown", (event) => {
// Note that "F" is case-sensitive (uppercase):
if (event.key === "Enter" || event.key === "F") {
// Check if we're in fullscreen mode
if (document.fullscreenElement) {
document.exitFullscreen();
return;
}
// Otherwise enter fullscreen mode
video.requestFullscreen().catch((err) => {
console.error(`Error enabling fullscreen: ${err.message}`);
});
}
});
<p>
The video element below shows a time-lapse of a flower blooming. You can
toggle fullscreen on and off using <kbd>Enter</kbd> or <kbd>Shift</kbd> +
<kbd>F</kbd> (uppercase "F"). The embedded document needs to have
<a
href="https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event">
focus
</a>
for the example to work.
</p>
<video controls loop src="/shared-assets/videos/flower.mp4" width="420"></video>
Verwendung von navigationUI
In diesem Beispiel wird das gesamte Dokument in den Vollbildmodus versetzt, indem requestFullscreen()
auf das Document.documentElement
des Dokuments aufgerufen wird, das das Wurzel-<html>
-Element des Dokuments ist.
let elem = document.documentElement;
elem
.requestFullscreen({ navigationUI: "show" })
.then(() => {})
.catch((err) => {
alert(
`An error occurred while trying to switch into fullscreen mode: ${err.message} (${err.name})`,
);
});
Der Auflösungs-Handler des Promises macht nichts, aber wenn das Promise abgelehnt wird, wird eine Fehlermeldung durch Aufruf von alert()
angezeigt.
Verwendung der Bildschirmoption
Wenn Sie das Element auf dem primären Betriebssystembildschirm im Vollbildmodus darstellen möchten, könnten Sie einen Code wie den folgenden verwenden:
try {
const primaryScreen = (await getScreenDetails()).screens.find(
(screen) => screen.isPrimary,
);
await document.body.requestFullscreen({ screen: primaryScreen });
} catch (err) {
console.error(err.name, err.message);
}
Die Window.getScreenDetails()
-Methode wird verwendet, um das ScreenDetails
-Objekt für das aktuelle Gerät abzurufen, das ScreenDetailed
-Objekte enthält, die die verschiedenen verfügbaren Bildschirme darstellen.
Spezifikationen
Specification |
---|
Fullscreen API # ref-for-dom-element-requestfullscreen① |
Browser-Kompatibilität
Loading…