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> # client-focus> | 
ブラウザーの互換性
Loading…