title | slug | l10n | ||
---|---|---|---|---|
tabs.query() |
Mozilla/Add-ons/WebExtensions/API/tabs/query |
|
{{AddonSidebar}}
获取具有指定属性的所有标签页,如果未指定任何属性,则获取所有标签页。
这是一个返回 Promise
的异步函数。
let querying = browser.tabs.query(queryInfo)
-
queryInfo
-
:
object
。query()
函数将仅获取其属性与此处包含的属性相匹配的标签页。请参阅 {{WebExtAPIRef("tabs.Tab")}} 文档以了解有关这些属性的详细信息。
active
{{optional_inline}}- :
boolean
。标签页是否在窗口中处于活动状态。
- :
attention
{{optional_inline}}- :
boolean
。指示标签页是否正在吸引注意力。
- :
audible
{{optional_inline}}- :
boolean
。标签页是否在播放声音。
- :
autoDiscardable
{{optional_inline}}- :
boolean
。浏览器是否可以自动丢弃该标签页。默认值为true
。若设置为false
,则浏览器将不会自动丢弃该标签页。但是,标签页仍可使用 {{WebExtAPIRef("tabs.discard")}} 来丢弃。
- :
cookieStoreId
{{optional_inline}}currentWindow
{{optional_inline}}- :
boolean
。标签页是否在当前窗口中。
- :
discarded
{{optional_inline}}- :
boolean
。标签页是否被丢弃。丢弃的标签页是指其内容已从内存中卸载,但仍在标签条中可见的标签页。其内容将下次激活时重新加载。
- :
hidden
{{optional_inline}}- :
boolean
。标签页是否被隐藏。
- :
highlighted
{{optional_inline}}- :
boolean
。标签页是否突出显示。
- :
index
{{optional_inline}}- :
integer
。标签页在其窗口中的位置。
- :
muted
{{optional_inline}}- :
boolean
。标签页是否静音。
- :
lastFocusedWindow
{{optional_inline}}- :
boolean
。标签页是否在最近聚焦的窗口中。
- :
pinned
{{optional_inline}}- :
boolean
。标签页是否固定。
- :
status
{{optional_inline}}- : {{WebExtAPIRef('tabs.TabStatus')}}。标签页是否已完成加载。
title
{{optional_inline}}- :
string
。将页面标题与模式进行匹配。需要“tabs”权限或匹配标签的主机权限。
- :
url
{{optional_inline}}windowId
{{optional_inline}}- :
integer
。父窗口的id
,或 {{WebExtAPIRef('windows.WINDOW_ID_CURRENT')}}(用于当前窗口)。
- :
windowType
{{optional_inline}}- : {{WebExtAPIRef('tabs.WindowType')}}。标签页所在窗口的类型。
-
一个 Promise
,其会兑现为包含 {{WebExtAPIRef('tabs.Tab')}} 对象(其中包含有关每个匹配的标签页的信息)的数组。
如果发生任何错误,promise 将以错误消息拒绝。
获取所有标签页:
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);
{{WebExtExamples}}
{{Compat}}
Note
该 API 基于 Chromium 的 chrome.tabs
API。本文档衍生自 Chromium 代码中的 tabs.json
。