WindowClient: focus() メソッド
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
focus()
は WindowClient
インターフェイスのメソッドで、現在のクライアントにユーザー入力フォーカスを与え、既存の WindowClient
に解決するプロミス (Promise
) を返します。
構文
js
focus()
引数
なし。
返値
既存の WindowClient
に解決するプロミス (Promise
)。
例外
InvalidAccessError
DOMException
-
アプリのオリジンのウィンドウに一時的な有効化が行われていない場合、この例外でプロミスが拒否されます。
セキュリティ要件
- アプリのオリジンの中で少なくとも 1 つのウィンドウで一時的な有効化が行われている必要があります。
例
js
self.addEventListener("notificationclick", (event) => {
console.log("On notification click: ", event.notification.tag);
event.notification.close();
// これは、クライアントが既に開いているかどうかを確認し、
// 開いている場合にフォーカスを合わせます
event.waitUntil(
clients
.matchAll({
type: "window",
})
.then((clientList) => {
for (const client of clientList) {
if (client.url === "/" && "focus" in client) return client.focus();
}
if (clients.openWindow) return clients.openWindow("/");
}),
);
});
仕様書
Specification |
---|
Service Workers # client-focus |
ブラウザーの互換性
BCD tables only load in the browser