tabs.query()
获取具有指定属性的所有标签页,如果未指定任何属性,则获取所有标签页。
这是一个返回 Promise
的异步函数。
语法
let querying = browser.tabs.query(queryInfo)
参数
queryInfo
-
object
。query()
函数将仅获取其属性与此处包含的属性相匹配的标签页。请参阅
tabs.Tab
文档以了解有关这些属性的详细信息。active
可选-
boolean
。标签页是否在窗口中处于活动状态。 attention
可选-
boolean
。指示标签页是否正在吸引注意力。 audible
可选-
boolean
。标签页是否在播放声音。 autoDiscardable
可选-
boolean
。浏览器是否可以自动丢弃该标签页。默认值为true
。若设置为false
,则浏览器将不会自动丢弃该标签页。但是,标签页仍可使用tabs.discard
来丢弃。 -
string
或string
数组。使用它来返回tab.cookieStoreId
与指定的任何cookieStoreId
字符串相匹配的标签页。此选项仅在附加组件具有"cookies"
权限时才可用。有关详细信息,请参见使用场景身份。 currentWindow
可选-
boolean
。标签页是否在当前窗口中。 discarded
可选-
boolean
。标签页是否被丢弃。丢弃的标签页是指其内容已从内存中卸载,但仍在标签条中可见的标签页。其内容将下次激活时重新加载。 -
boolean
。标签页是否被隐藏。 highlighted
可选-
boolean
。标签页是否突出显示。 index
可选-
integer
。标签页在其窗口中的位置。 muted
可选-
boolean
。标签页是否静音。 lastFocusedWindow
可选-
boolean
。标签页是否在最近聚焦的窗口中。 pinned
可选-
boolean
。标签页是否固定。 status
可选-
tabs.TabStatus
。标签页是否已完成加载。 title
可选-
string
。将页面标题与模式进行匹配。需要“tabs”权限或匹配标签的主机权限。 url
可选-
string
或string
数组。将标签页与一个或多个匹配模式进行匹配。请注意,不会匹配片段标识符。需要“tabs”权限或匹配标签的主机权限。 windowId
可选-
integer
。父窗口的id
,或windows.WINDOW_ID_CURRENT
(用于当前窗口)。 windowType
可选-
tabs.WindowType
。标签页所在窗口的类型。
返回值
示例
获取所有标签页:
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);
获取当前窗口中的所有标签页:
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);
获取当前窗口中的活动标签页:
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 的标签页:
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
。