tabs.query()

獲取具有指定屬性的所有標籤頁,或者在未指定屬性時獲取所有標籤頁。

語法

js
let querying = browser.tabs.query(queryInfo)

引數

queryInfo

object() 函式獲取屬性與此處包含的屬性匹配的標籤頁。

有關這些屬性的詳細資訊,請參閱 tabs.Tab 文件。

active 可選

boolean。標籤頁是否在其視窗中處於活動狀態。

attention 可選

boolean。指示標籤頁是否正在吸引注意力。

audible 可選

boolean。標籤頁是否發出聲音。

autoDiscardable 可選

boolean。標籤頁是否可以被瀏覽器丟棄。預設值為 true。當設定為 false 時,瀏覽器無法自動丟棄該標籤頁。但是,該標籤頁可以透過 tabs.discard 進行丟棄。

cookieStoreId 可選

stringstringarray。使用此選項可返回 tab.cookieStoreId 與任何 cookieStoreId 字串匹配的標籤頁。此選項僅在附加元件具有 "cookies" 許可權時可用。有關更多資訊,請參閱 使用上下文標識

currentWindow 可選

boolean。標籤頁是否在當前視窗中。

discarded 可選

boolean。標籤頁是否已被丟棄。已丟棄的標籤頁是指其內容已從記憶體中解除安裝,但在標籤欄中仍可見的標籤頁。下次啟用時,其內容將重新載入。

groupId 可選

integer。標籤頁所屬的標籤組的 ID,或者對於未分組的標籤頁為 -1 (tabGroups.TAB_GROUP_ID_NONE)。有關標籤組的更多資訊,請參閱 tabGroups

hidden 可選

boolean。標籤頁是否隱藏。

highlighted 可選

boolean。標籤頁是否突出顯示。

index 可選

integer。標籤頁在其視窗中的位置。

muted 可選

boolean。標籤頁是否被靜音。

lastFocusedWindow 可選

boolean。標籤頁是否在最後一個聚焦的視窗中。

pinned 可選

boolean。標籤頁是否被固定。

status 可選

tabs.TabStatus。標籤頁是否已完成載入。

title 可選

string。使用模式匹配頁面標題。需要“tabs”許可權或針對要匹配的標籤頁的 主機許可權

url 可選

stringstringarray。使用一個或多個 匹配模式 來匹配標籤頁。請注意,不匹配片段識別符號。需要“tabs”許可權或針對要匹配的標籤頁的 主機許可權

windowId 可選

integer。父視窗的 id,或當前視窗的 windows.WINDOW_ID_CURRENT

windowType 可選

tabs.WindowType。標籤頁所在的視窗型別。

返回值

一個 Promise,它將使用一個 arraytabs.Tab 物件來解析,其中包含有關每個匹配標籤頁的資訊。

如果發生任何錯誤,Promise 將以錯誤訊息被拒絕。

示例

獲取所有標籤頁

js
function logTabs(tabs) {
  for (const tab of tabs) {
    // tab.url requires the `tabs` permission or a matching host permission.
    console.log(tab.url);
  }
}

function onError(error) {
  console.error(`Error: ${error}`);
}

browser.tabs.query({}).then(logTabs, onError);

獲取當前視窗中的所有標籤頁

js
function logTabs(tabs) {
  for (const tab of tabs) {
    // tab.url requires the `tabs` permission or a matching host permission.
    console.log(tab.url);
  }
}

function onError(error) {
  console.error(`Error: ${error}`);
}

browser.tabs.query({ currentWindow: true }).then(logTabs, onError);

獲取當前視窗中的活動標籤頁

js
function logTabs(tabs) {
  // tabs[0].url requires the `tabs` permission or a matching host permission.
  console.log(tabs[0].url);
}

function onError(error) {
  console.error(`Error: ${error}`);
}

browser.tabs
  .query({ currentWindow: true, active: true })
  .then(logTabs, onError);

獲取 "mozilla.org" 或其任何子域下的所有 HTTP 和 HTTPS URL 的標籤頁

js
function logTabs(tabs) {
  for (const tab of tabs) {
    // tab.url requires the `tabs` permission or a matching host permission.
    console.log(tab.url);
  }
}

function onError(error) {
  console.error(`Error: ${error}`);
}

browser.tabs.query({ url: "*://*.mozilla.org/*" }).then(logTabs, onError);

擴充套件程式示例

瀏覽器相容性

注意:此 API 基於 Chromium 的 chrome.tabs API。本文件源自 Chromium 程式碼中的 tabs.json