Window: getScreenDetails() 方法

实验性: 这是一个 实验性技术
在生产环境中使用此功能前,请仔细查看 浏览器兼容性表格

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,并且在某些或所有 支持的浏览器 中可用。

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

语法

js
getScreenDetails()

参数

无。

返回值

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

异常

NotAllowedError DOMException

如果设置了阻止使用 窗口管理 APIwindow-management 权限策略,或者用户明确拒绝了浏览器使用该 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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅