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 可选

stringstringarray。使用此选项返回其 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 可选

stringstringarray。将选项卡与一个或多个 匹配模式 匹配。请注意,不会匹配片段标识符。需要“tabs”权限或 主机权限 才能使选项卡匹配。

windowId 可选

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

windowType 可选

tabs.WindowType。选项卡所在的窗口类型。

返回值

一个 Promise,它将使用 tabs.Tab 对象的 array 来完成,其中包含有关每个匹配选项卡的信息。

如果发生任何错误,则 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);

扩展示例

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

注意:此 API 基于 Chromium 的 chrome.tabs API。本文档源自 Chromium 代码中的 tabs.json