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