DocumentPictureInPicture:requestWindow() 方法
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
DocumentPictureInPicture
接口的 requestWindow()
方法为当前主浏览上下文打开画中画窗口。它返回一个 Promise
,其兑现一个 Window
实例,表示画中画窗口内的浏览上下文。
requestWindow()
方法需要瞬态激活,也就是说,它必须在响应鼠标单击或按钮按下等用户操作时调用。
语法
js
requestWindow()
requestWindow(options)
参数
options
可选-
包含以下属性的选项对象:
备注: 如果指定了其中一个选项,则必须同时指定另一个选项,否则会抛出错误。如果两个值均未指定、指定为 0 或设置过大,则浏览器将根据需要限制或忽略这些值以提供合理的用户体验。限制的大小将根据浏览器实现、显示器尺寸和其他因素而有所不同。
返回值
异常
NotSupportedError
DOMException
-
如果 API 已被明确禁用(例如通过浏览器设置),则抛出此异常。
NotAllowedError
DOMException
-
在符合以下条件时抛出此异常:
requestWindow()
不是从顶级window
对象调用的。requestWindow()
是从画中画窗口的window
对象调用的(即DocumentPictureInPicture.window
)。- 调用
requestWindow()
时不满足瞬态激活。
RangeError
DOMException
-
如果仅设置了
height
和width
中的一个,或者height
和width
设置为负值,则抛出。
示例
js
const videoPlayer = document.getElementById("player");
// ...
// 打开画中画窗口。
const pipWindow = await window.documentPictureInPicture.requestWindow({
width: videoPlayer.clientWidth,
height: videoPlayer.clientHeight,
});
// ...
规范
Specification |
---|
Document Picture-in-Picture # dom-documentpictureinpicture-requestwindow |
浏览器兼容性
BCD tables only load in the browser