tabs.query()

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

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

语法

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

参数

queryObj

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

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

active 可选

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

audible 可选

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

autoDiscardable 可选

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

cookieStoreId 可选

stringstring 数组。使用它来返回 tab.cookieStoreId 与指定的任何 cookieStoreId 字符串相匹配的标签页。此选项仅在附加组件具有 "cookies" 权限时才可用。

currentWindow 可选

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

discarded 可选

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

hidden 可选

boolean。标签页是否被隐藏。

highlighted 可选

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

index 可选

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

muted 可选

boolean。标签页是否静音。

lastFocusedWindow 可选

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

pinned 可选

boolean。标签页是否固定。

status 可选

tabs.TabStatus (en-US)。标签页是否已完成加载。

title 可选

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

url 可选

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

windowId 可选

integer。父窗口的 ID,或 windows.WINDOW_ID_CURRENT (en-US)(用于当前窗口)。

windowType 可选

tabs.WindowType (en-US)。标签页所在窗口的类型。

返回值

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

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

示例

获取所有标签页:

js
function logTabs(tabs) {
  for (const tab of tabs) {
    // tab.url 需要 `tabs` 权限或匹配的主机(host)权限。
    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);

Example extensions

浏览器兼容性

BCD tables only load in the browser

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