CaptureController:setFocusBehavior() 方法

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,在部分或所有 支持的浏览器 中。

CaptureController 接口的 setFocusBehavior() 方法控制与关联的 MediaDevices.getDisplayMedia() Promise fulfilled 时捕获的选项卡或窗口是否将获得焦点,或者焦点是否将保留在包含捕获应用程序的选项卡中。

可以在 MediaDevices.getDisplayMedia() 调用之前多次设置此行为,或者在其 Promise 解析后立即设置一次。之后,焦点行为将被视为最终确定,并且无法更改。

语法

js
setFocusBehavior(focusBehavior)

参数

focusBehavior

一个枚举值,描述用户代理是否应将焦点转移到捕获的显示表面,或者保持捕获应用程序处于焦点状态。可能的取值包括 focus-captured-surface(转移焦点)和 no-focus-change(将焦点保持在捕获应用程序上)。

返回值

无(undefined)。

异常

InvalidStateError DOMException

如果抛出

示例

js
// 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");
}

规范

规范
屏幕捕获
# dom-capturecontroller-setfocusbehavior

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅