CaptureController: forwardWheel() 方法
CaptureController 介面的 forwardWheel() 方法開始將引用元素上觸發的 wheel 事件轉發到關聯的已捕獲顯示錶面的視口。
forwardWheel() 方法必須透過 瞬時啟用 呼叫。具體來說,唯一能成功呼叫它的事件是 click 和 input。此外,當首次嘗試螢幕捕獲時,使用者會被請求共享標籤頁的許可權;如果使用者授予了許可權,這也包括滾動已捕獲標籤頁的許可權。如果相關許可權已經是 "granted",則不需要瞬時啟用。
語法
js
forwardWheel(element)
引數
element-
對你想轉發
wheel事件到已捕獲顯示錶面的元素的引用。
返回值
異常
InvalidStateErrorDOMException-
丟擲時
- 原始
MediaDevices.getDisplayMedia()呼叫返回的捕獲MediaStream不再捕獲,例如因為關聯的MediaStreamTrack物件已呼叫了stop()。 - 應用程式正在捕獲自身。
- 嘗試在沒有瞬時啟用的情況下呼叫
forwardWheel(),而使用者尚未授予使用它的許可權。
- 原始
NotAllowedErrorDOMException-
丟擲時
- 頁面的
captured-surface-control許可權策略不允許頁面使用 Captured Surface Control API。 - 使用者明確拒絕了捕獲顯示圖面的許可權。
- 頁面的
NotSupportedErrorDOMException-
正在捕獲的表面型別不是瀏覽器標籤頁。
示例
基本的 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 |
瀏覽器相容性
載入中…