tabs.query()
{{AddonSidebar}}
Gets all tabs that have the specified properties, or all tabs if no properties are specified.
This is an asynchronous function that returns a Promise
.
Syntax
let querying = browser.tabs.query(queryInfo)
Parameters
-
queryInfo
-
:
object
. Thequery()
function gets the tabs whose properties match the properties included here.See the
{{WebExtAPIRef("tabs.Tab")}}
documentation to learn more about these properties.active
{{optional_inline}}
- :
boolean
. Whether the tabs are active in their windows.
- :
attention
{{optional_inline}}
- :
boolean
. Indicates whether the tabs are drawing attention.
- :
audible
{{optional_inline}}
- :
boolean
. Whether the tabs are audible.
- :
autoDiscardable
{{optional_inline}}
- :
boolean
. Whether the tab can be discarded by the browser. The default value istrue
. When set tofalse
, the browser cannot automatically discard the tab. However, the tab can be discarded by{{WebExtAPIRef("tabs.discard")}}
.
- :
cookieStoreId
{{optional_inline}}
- :
string
orarray
ofstring
. Use this to return tabs whosetab.cookieStoreId
matches any of thecookieStoreId
strings. This option is only available if the add-on has the"cookies"
permission. See Work with contextual identities for more information.
- :
currentWindow
{{optional_inline}}
- :
boolean
. Whether the tabs are in the current window.
- :
discarded
{{optional_inline}}
- :
boolean
. Whether the tabs are discarded. A discarded tab is one whose content has been unloaded from memory, but is still visible in the tab strip. Its content gets reloaded the next time it’s activated.
- :
hidden
{{optional_inline}}
- :
boolean
. Whether the tabs are hidden.
- :
highlighted
{{optional_inline}}
- :
boolean
. Whether the tabs are highlighted.
- :
index
{{optional_inline}}
- :
integer
. The position of the tabs within their windows.
- :
muted
{{optional_inline}}
- :
boolean
. Whether the tabs are muted.
- :
lastFocusedWindow
{{optional_inline}}
- :
boolean
. Whether the tabs are in the last focused window.
- :
pinned
{{optional_inline}}
- :
boolean
. Whether the tabs are pinned.
- :
status
{{optional_inline}}
- :
{{WebExtAPIRef('tabs.TabStatus')}}
. Whether the tabs have completed loading.
- :
title
{{optional_inline}}
- :
string
. Match page titles against a pattern. Requires the “tabs” permission or host permissions for the tab to match.
- :
url
{{optional_inline}}
- :
string
orarray
ofstring
. Match tabs against one or more match patterns. Note that fragment identifiers are not matched. Requires the “tabs” permission or host permissions for the tab to match.
- :
windowId
{{optional_inline}}
- :
integer
. Theid
of the parent window, or{{WebExtAPIRef('windows.WINDOW_ID_CURRENT')}}
for the current window.
- :
windowType
{{optional_inline}}
- :
{{WebExtAPIRef('tabs.WindowType')}}
. The type of window the tabs are in.
- :
-
Return value
A Promise
that will be fulfilled with an array
of ``{{WebExtAPIRef(‘tabs.Tab’)}}
objects, containing information about each matching tab.
If any error occurs, the promise will be rejected with an error message.
Examples
Get all tabs:
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);
Get all tabs in the current window:
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);
Get the active tab in the current window:
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);
Get tabs for all HTTP and HTTPS URLs under "mozilla.org"
or any of its subdomains:
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);
{{WebExtExamples}}
Browser compatibility
{{Compat}}
[!NOTE] This API is based on Chromium’s
chrome.tabs
API. This documentation is derived fromtabs.json
in the Chromium code.