ScreenDetails: currentscreenchange 事件

可用性有限

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

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

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

ScreenDetails 接口的 currentscreenchange 事件会在 ScreenDetails.currentScreen 以以下任一方式更改时触发:

  • 当前屏幕更改为不同的屏幕,即当前浏览器窗口移动到不同的屏幕。
  • 当前屏幕上的以下一个或多个属性发生更改:
  • 以下一个或多个值发生更改:
    • 屏幕在操作系统虚拟屏幕布局中的位置(左上角的 (x,y) 坐标),相对于 多屏幕原点
    • 屏幕在操作系统虚拟屏幕布局中的可用位置(左上角的 (x,y) 坐标),相对于 多屏幕原点。这等于屏幕位置,加上绘制在屏幕左上角的任何操作系统 UI 元素的宽度/高度——窗口不能放置在这些区域。
    • devicePixelRatio
    • label
    • 屏幕被指定为主屏幕或次屏幕(参见 isPrimary)。
    • 屏幕被指定为内部屏幕或外部屏幕(参见 isInternal)。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("currentscreenchange", (event) => { })

oncurrentscreenchange = (event) => { }

事件类型

一个通用的 Event

示例

js
const screenDetails = await window.getScreenDetails();
screenDetails.addEventListener("currentscreenchange", (event) => {
  const details = screenDetails.currentScreen;
  console.log("The current screen has changed.", event, details);
});

规范

规范
窗口管理
# eventdef-screendetails-currentscreenchange
窗口管理
# ref-for-dom-screendetails-oncurrentscreenchange

浏览器兼容性

另见