DocumentPictureInPicture: requestWindow() 方法
DocumentPictureInPicture 介面的 requestWindow() 方法會為當前主瀏覽上下文開啟畫中畫視窗。它返回一個 Promise,該 Promise 會解析為一個代表畫中畫視窗內部瀏覽上下文的 Window 例項。
requestWindow() 方法需要 瞬時啟用,也就是說,它必須響應使用者的操作(如滑鼠點選或按鈕按下)而被呼叫。
語法
requestWindow()
requestWindow(options)
引數
options可選-
一個包含以下屬性的選項物件
disallowReturnToOpener可選-
一個布林值。當設定為
true時,此選項會提示瀏覽器不顯示允許使用者返回原始標籤頁並關閉畫中畫視窗的使用者介面控制元件。預設為false。例如,在 Chrome 對此功能的實現中,提供的使用者介面控制元件是畫中畫視窗頂部欄中的“返回標籤頁”按鈕。

height可選-
一個非負數,表示要為畫中畫視窗的視口設定的高度,單位為畫素。預設為
0。 preferInitialWindowPlacement可選-
一個布林值,預設為
false。當設定為true時,當畫中畫視窗關閉後重新開啟時,它將始終恢復到初始開啟時的位置和大小。相比之下,如果preferInitialWindowPlacement設定為false,則畫中畫視窗的大小和位置在關閉後重新開啟時會被記住——它將恢復到之前的使用者設定的位置和大小。 width可選-
一個非負數,表示要為畫中畫視窗的視口設定的寬度,單位為畫素。預設為
0。
注意: 如果指定了 height 或 width 中的一個,則另一個也必須指定,否則會丟擲錯誤。如果兩個值都未指定、指定為 0,或設定得過大,瀏覽器將根據需要調整或忽略這些值,以提供合理的使用者名稱體驗。調整後的尺寸將根據實現、顯示尺寸和其他因素而有所不同。
返回值
異常
NotSupportedErrorDOMException-
如果 API 被明確停用(例如透過瀏覽器設定),則丟擲此錯誤。
NotAllowedErrorDOMException-
在以下情況下丟擲
requestWindow()不是從頂層window物件呼叫的。requestWindow()是從畫中畫視窗的window物件呼叫的(即DocumentPictureInPicture.window)。requestWindow()是在沒有 瞬時啟用 的情況下呼叫的。
RangeErrorDOMException-
如果只設置了
height和width中的一個,或者height和width設定為負值,則會丟擲此錯誤。
示例
const videoPlayer = document.getElementById("player");
// …
// Open a Picture-in-Picture window with all options set
const pipWindow = await window.documentPictureInPicture.requestWindow({
width: videoPlayer.clientWidth,
height: videoPlayer.clientHeight,
disallowReturnToOpener: true,
preferInitialWindowPlacement: true,
});
// …
規範
| 規範 |
|---|
| 文件畫中畫規範 # dom-documentpictureinpicture-requestwindow |
瀏覽器相容性
載入中…