CaptureController: forwardWheel() 方法

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

CaptureController 接口的 forwardWheel() 方法开始将引用元素上触发的 wheel 事件转发到关联的已捕获显示表面的视口。

forwardWheel() 方法必须通过 瞬时激活 调用。具体来说,唯一能成功调用它的事件是 clickinput。此外,当首次尝试屏幕捕获时,用户会被请求共享标签页的权限;如果用户授予了权限,这也包括滚动已捕获标签页的权限。如果相关权限已经是 "granted",则不需要瞬时激活。

语法

js
forwardWheel(element)

参数

element

对你想转发 wheel 事件到已捕获显示表面的元素的引用。

返回值

一个 Promise,它 fulfilled 为 undefined

异常

InvalidStateError DOMException

抛出时

NotAllowedError DOMException

抛出时

NotSupportedError DOMException

正在捕获的表面类型不是浏览器标签页。

示例

基本的 forwardWheel() 用法

在我们由 使用捕获的表面控制 API 解释的实时演示中,我们在捕获的 getDisplayMedia() Promise fulfilled 后调用了一个名为 startForwarding() 的函数。

js
// Create controller and start capture
const controller = new CaptureController();
videoElem.srcObject = await navigator.mediaDevices.getDisplayMedia({
  controller,
});

// ...

startForwarding();

该函数调用 forwardWheel() 方法,并将正在显示捕获流的 <video> 元素作为引用传递给它。

js
async function startForwarding() {
  try {
    await controller.forwardWheel(videoElem);
  } catch (e) {
    console.log(e);
  }
}

这导致在引用元素上触发的 wheel 事件被转发到已捕获的显示表面,使捕获应用程序能够滚动它。

规范

规范
Captured Surface Control
# dom-capturecontroller-forwardwheel

浏览器兼容性

另见