WindowClient
注意:此功能仅在Service Workers中可用。
WindowClient
接口是 ServiceWorker API 的一部分,它表示服务工作线程客户端的范围,该客户端是在浏览上下文中处于活动状态的工作线程所控制的文档。服务工作线程客户端独立地选择并使用服务工作线程来加载自身和子资源。
实例方法
WindowClient
继承自其父接口 Client
的方法。
WindowClient.focus()
-
将用户输入焦点赋予当前客户端。
-
将指定的 URL 加载到受控的客户端页面中。
实例属性
WindowClient
继承自其父接口 Client
的属性。
WindowClient.ancestorOrigins
只读 实验性-
一个字符串数组,以相反的顺序指示此
WindowClient
所表示的浏览上下文的祖先来源。 WindowClient.focused
只读-
一个布尔值,指示当前客户端是否具有焦点。
WindowClient.visibilityState
只读-
指示当前客户端的可见性。此值可以是
"hidden"
、"visible"
或"prerender"
之一。
示例
js
self.addEventListener("notificationclick", (event) => {
console.log("On notification click: ", event.notification.tag);
event.notification.close();
// This looks to see if the current is already open and
// focuses if it is
event.waitUntil(
clients
.matchAll({
type: "window",
})
.then((clientList) => {
for (const client of clientList) {
if (client.url === "/" && "focus" in client) {
client.focus();
break;
}
}
if (clients.openWindow) return clients.openWindow("/");
}),
);
});
规范
规范 |
---|
Service Workers # windowclient |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。