CaptureController: Methode setFocusBehavior()
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die Methode setFocusBehavior() des Interfaces CaptureController steuert, ob der erfasste Tab oder das erfasste Fenster den Fokus erhält, wenn die zugehörige Promise von MediaDevices.getDisplayMedia() erfüllt wird, oder ob der Fokus beim Tab mit der erfassenden App bleibt.
Sie können dieses Verhalten vor dem Aufruf von MediaDevices.getDisplayMedia() mehrfach festlegen oder einmal unmittelbar, nachdem dessen Promise erfüllt wurde. Danach gilt das Fokusverhalten als endgültig festgelegt und kann nicht mehr geändert werden.
Syntax
setFocusBehavior(focusBehavior)
Parameter
focusBehavior-
Ein Aufzählungswert, der angibt, ob der User Agent den Fokus auf die erfasste Anzeigefläche übertragen oder die erfassende App im Fokus behalten soll. Mögliche Werte sind
focus-captured-surface(Fokus übertragen) undno-focus-change(Fokus bei der erfassenden App belassen).
Rückgabewert
Keiner (undefined).
Ausnahmen
InvalidStateErrorDOMException-
Wird ausgelöst, wenn:
- Der Erfassungsstream gestoppt wurde.
- Der Benutzer einen Bildschirm (Typ
monitorvondisplaySurface) statt einesbrowser-Tabs oder eineswindowzur Freigabe ausgewählt hat – ein Monitor kann keinen Fokus erhalten. In diesem Fall wird die Ausnahme ausgelöst, nachdem diePromisevonMediaDevices.getDisplayMedia()erfüllt wurde. - Nach der Erfüllung der
PromisevonMediaDevices.getDisplayMedia()genügend Zeit vergangen ist, sodass das Fokusverhalten endgültig festgelegt wurde.
Beispiele
>Grundlegende Verwendung von setFocusBehavior()
// Create a new CaptureController instance
const controller = new CaptureController();
// Prompt the user to share a tab, window, or screen.
const stream = await navigator.mediaDevices.getDisplayMedia({ controller });
// Query the displaySurface value of the captured video track
const [track] = stream.getVideoTracks();
const displaySurface = track.getSettings().displaySurface;
if (displaySurface === "browser") {
// Focus the captured tab.
controller.setFocusBehavior("focus-captured-surface");
} else if (displaySurface === "window") {
// Do not move focus to the captured window.
// Keep the capturing page focused.
controller.setFocusBehavior("no-focus-change");
}
Spezifikationen
| Spezifikation |
|---|
| Screen Capture> # dom-capturecontroller-setfocusbehavior> |