WindowClient: visibilityState 属性

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本工作。它自 ⁨2018 年 4 月⁩ 起已在所有浏览器中可用。

注意:此功能仅在 Service Workers 中可用。

visibilityStateWindowClient 接口的只读属性,它指示当前客户端的可见性。该值可以是 "hidden""visible""prerender" 之一。

一个字符串(参见 Document.visibilityState 以获取值)。

示例

js
event.waitUntil(
  clients
    .matchAll({
      type: "window",
    })
    .then((clientList) => {
      for (const client of clientList) {
        if (client.url === "/" && "focus" in client) {
          if (client.visibilityState === "hidden") return client.focus();
        }
      }
      if (clients.openWindow) {
        return clients.openWindow("/");
      }
    }),
);

规范

规范
Service Workers
# client-visibilitystate

浏览器兼容性