tabs.query()

获取具有指定属性的所有标签页,如果未指定任何属性,则获取所有标签页。

这是一个返回 Promise 的异步函数。

语法

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

参数

queryInfo

objectquery() 函数将仅获取其属性与此处包含的属性相匹配的标签页。

请参阅 tabs.Tab 文档以了解有关这些属性的详细信息。

active 可选

boolean。标签页是否在窗口中处于活动状态。

attention 可选

boolean。指示标签页是否正在吸引注意力。

audible 可选

boolean。标签页是否在播放声音。

autoDiscardable 可选

boolean。浏览器是否可以自动丢弃该标签页。默认值为 true。若设置为 false,则浏览器将不会自动丢弃该标签页。但是,标签页仍可使用 tabs.discard 来丢弃。

cookieStoreId 可选

stringstring 数组。使用它来返回 tab.cookieStoreId 与指定的任何 cookieStoreId 字符串相匹配的标签页。此选项仅在附加组件具有 "cookies" 权限时才可用。有关详细信息,请参见使用场景身份

currentWindow 可选

boolean。标签页是否在当前窗口中。

discarded 可选

boolean。标签页是否被丢弃。丢弃的标签页是指其内容已从内存中卸载,但仍在标签条中可见的标签页。其内容将下次激活时重新加载。

hidden 可选

boolean。标签页是否被隐藏。

highlighted 可选

boolean。标签页是否突出显示。

index 可选

integer。标签页在其窗口中的位置。

muted 可选

boolean。标签页是否静音。

lastFocusedWindow 可选

boolean。标签页是否在最近聚焦的窗口中。

pinned 可选

boolean。标签页是否固定。

status 可选

tabs.TabStatus。标签页是否已完成加载。

title 可选

string。将页面标题与模式进行匹配。需要“tabs”权限或匹配标签的主机权限

url 可选

stringstring 数组。将标签页与一个或多个匹配模式进行匹配。请注意,不会匹配片段标识符。需要“tabs”权限或匹配标签的主机权限

windowId 可选

integer。父窗口的 id,或 windows.WINDOW_ID_CURRENT(用于当前窗口)。

windowType 可选

tabs.WindowType。标签页所在窗口的类型。

返回值

一个 Promise,其会兑现为包含 tabs.Tab 对象(其中包含有关每个匹配的标签页的信息)的数组。

如果发生任何错误,promise 将以错误消息拒绝。

示例

获取所有标签页:

js
function logTabs(tabs) {
  for (const tab of tabs) {
    // tab.url 需要 `tabs` 权限或匹配的主机权限。
    console.log(tab.url);
  }
}

function onError(error) {
  console.error(`发生错误:${error}`);
}

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

获取当前窗口中的所有标签页:

js
function logTabs(tabs) {
  for (let tab of tabs) {
    // tab.url 需要 `tabs` 权限或匹配的主机权限。
    console.log(tab.url);
  }
}

function onError(error) {
  console.log(`发生错误:${error}`);
}

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

获取当前窗口中的活动标签页:

js
function logTabs(tabs) {
  // tabs[0].url 需要 `tabs` 权限或匹配的主机权限。
  console.log(tabs[0].url);
}

function onError(error) {
  console.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 需要 `tabs` 权限或匹配的主机权限。
    console.log(tab.url);
  }
}

function onError(error) {
  console.error(`发生错误:${error}`);
}

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

示例扩展

浏览器兼容性

BCD tables only load in the browser

备注:该 API 基于 Chromium 的 chrome.tabs API。本文档衍生自 Chromium 代码中的 tabs.json