WindowClient: focus() メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2018年4月以降、すべてのブラウザーで利用可能です。
focus() は WindowClient インターフェイスのメソッドで、現在のクライアントにユーザー入力フォーカスを与え、既存の WindowClient に解決するプロミス (Promise) を返します。
構文
js
focus()
引数
なし。
返値
既存の WindowClient に解決するプロミス (Promise)。
例外
InvalidAccessErrorDOMException-
アプリのオリジンのウィンドウに一時的な有効化が行われていない場合、この例外でプロミスが拒否されます。
セキュリティ要件
- アプリのオリジンの中で少なくとも 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("/");
}),
);
});
仕様書
| 仕様書 |
|---|
| Service Workers Nightly> # client-focus> |