ScreenDetailed

可用性有限

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

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

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

ScreenDetailed 接口是 窗口管理 API 的一部分,它代表了用户设备可用屏幕的详细信息。

可以通过 ScreenDetails.screensScreenDetails.currentScreen 属性访问 ScreenDetailed 对象。

Screen ScreenDetailed

实例属性

继承自其父接口 Screen 的属性。

availLeft 只读 实验性

一个数字,表示可用屏幕区域的 x 坐标(左边缘)。

availTop 只读 实验性

一个数字,表示可用屏幕区域的 y 坐标(上边缘)。

devicePixelRatio 只读 实验性

一个数字,表示屏幕的设备像素比。

isInternal 只读 实验性

一个布尔值,指示屏幕是设备内置的还是外部的。

isPrimary 只读 实验性

一个布尔值,指示该屏幕是否被设置为操作系统 (OS) 的主屏幕。

label 只读 实验性

一个字符串,提供屏幕的描述性标签,例如“内置 Retina 显示器”。

left 只读 实验性

一个数字,表示整个屏幕区域的 x 坐标(左边缘)。

top 只读 实验性

一个数字,表示整个屏幕区域的 y 坐标(上边缘)。

事件

继承自其父接口 Screen 的事件。

change 实验性

当屏幕的任何属性发生变化时,将在特定屏幕上触发 — 宽度或高度、可用宽度或可用高度、颜色深度或方向、屏幕位置和可用屏幕位置、设备像素比、标签或屏幕的标识。

示例

当调用 Window.getScreenDetails() 时,系统将请求用户授权管理其所有显示器上的窗口(可以通过 Permissions.query() 查询 window-management 来检查此权限的状态)。如果用户授予了权限,则生成的 ScreenDetails 对象将包含表示用户系统所有可用屏幕的 ScreenDetailed 对象。

以下示例将在操作系统主屏幕的左上角打开一个窗口

js
// Return ScreenDetails
const allScreens = await window.getScreenDetails();

// Return the primary screen ScreenDetailed object
const primaryScreenDetailed = allScreens.screens.find(
  (screenDetailed) => screenDetailed.isPrimary,
);

// Open a window in the top-left corner of the OS primary screen
window.open(
  "https://example.com",
  "_blank",
  `left=${primaryScreenDetailed.availLeft},
   top=${primaryScreenDetailed.availTop},
   width=200,
   height=200`,
);

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

规范

规范
窗口管理
# api-screendetailed-interface

浏览器兼容性

另见