このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

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 2018年4月.

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 Nightly
# client-focus

ブラウザーの互換性