ScreenDetails:screenschange 事件

可用性有限

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

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

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

ScreenDetails 接口的 screenschange 事件在系统可用的屏幕集合发生变化时触发:也就是说,一个新的屏幕可用,或者一个已有的屏幕变得不可用。这将在 screens 数组中得到反映。

语法

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

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

onscreenschange = (event) => { }

事件类型

一个通用的 Event

示例

您可以使用 screenschange 事件来检测可用屏幕何时发生变化,报告该变化,关闭所有窗口,然后重新打开它们以适应新的配置。

js
const screenDetails = await window.getScreenDetails();

// Return the number of screens
let noOfScreens = screenDetails.screens.length;

screenDetails.addEventListener("screenschange", () => {
  // If the new number of screens is different to the old number of screens, report the difference
  if (screenDetails.screens.length !== noOfScreens) {
    console.log(
      `The screen count changed from ${noOfScreens} to ${screenDetails.screens.length}`,
    );

    // Update noOfScreens value
    noOfScreens = screenDetails.screens.length;
  }

  // Open, close, or rearrange windows as needed, to fit the new screen configuration
  updateWindows();
});

规范

规范
窗口管理
# eventdef-screendetails-screenschange
窗口管理
# ref-for-dom-screendetails-onscreenschange

浏览器兼容性

另见