Clients: matchAll() 方法

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本工作。它自 ⁨2018 年 4 月⁩ 起已在所有瀏覽器中可用。

注意:此功能僅在 Service Workers 中可用。

Clients 介面的 matchAll() 方法返回一個 Promise,該 Promise 解析為一組服務工作執行緒 Client 物件。包含 options 引數可返回與關聯服務工作執行緒具有相同源的、所有服務工作執行緒客戶端。如果未包含 options,該方法僅返回由該服務工作執行緒控制的服務工作執行緒客戶端。

語法

js
matchAll()
matchAll(options)

引數

options 可選

一個 options 物件,允許您為匹配操作設定選項。可用選項包括:

includeUncontrolled

一個布林值——如果設定為 true,則匹配操作將返回與當前服務工作執行緒具有相同源的所有服務工作執行緒客戶端。否則,它將僅返回由當前服務工作執行緒控制的服務工作執行緒客戶端。預設為 false

type

設定您想要匹配的客戶端型別。可用值包括 "window""worker""sharedworker""all"。預設為 "window"

返回值

一個 Promise,解析為 Client 物件陣列。在 Chrome 46/Firefox 54 及更高版本中,此方法按最近聚焦的順序返回客戶端,符合規範。

示例

js
clients.matchAll(options).then((clientList) => {
  for (const client of clientList) {
    if (client.url === "index.html") {
      clients.openWindow(client);
      // or do something else involving the matching client
    }
  }
});

規範

規範
Service Workers
# clients-matchall

瀏覽器相容性