Window: getScreenDetails() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

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

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

Window 接口的 getScreenDetails() 方法返回一个 Promise,该 Promise 会解析为一个 ScreenDetails 对象实例,该实例代表用户设备上所有可用屏幕的详细信息。

语法

js
getScreenDetails()

参数

无。

返回值

一个 Promise,解析为 ScreenDetails 对象实例。

异常

NotAllowedError DOMException

如果设置了 window-management Permissions-Policy 来阻止使用 Window Management API,或者用户已明确拒绝浏览器使用该 API 的权限请求,则会抛出此错误。

示例

当调用 getScreenDetails() 时,用户将被询问是否允许管理其所有显示器上的窗口(此权限状态可以使用 Permissions.query() 查询 window-management 来检查)。如果用户授予了权限,则生成的 ScreenDetails 对象将包含用户系统上所有可用屏幕的详细信息。

下面的示例会在每个可用显示器上打开一个全屏窗口。

js
const screenDetails = await window.getScreenDetails();

// Open a full-size window on each screen available to the device
for (const screen of screenDetails.screens) {
  window.open(
    "https://example.com",
    "_blank",
    `left=${screen.availLeft},
    top=${screen.availTop},
    width=${screen.availWidth},
    height=${screen.availHeight}`,
  );
}

注意:有关完整的示例,请参阅 多窗口学习环境(也可以查看 源代码)。

规范

规范
窗口管理
# api-window-getScreenDetails-method

浏览器兼容性

另见