tabs.query()
Gets all tabs that have the specified properties, or all tabs if no properties are specified.
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}}- :
stringorarrayofstring. Use this to return tabs whosetab.cookieStoreIdmatches any of thecookieStoreIdstrings. 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.
- :
groupId{{optional_inline}}- :
integer. The ID of the tab group the tabs are in or-1({{WebExtAPIRef("tabGroups.TAB_GROUP_ID_NONE")}}) for ungrouped tabs. For more information on tab groups, see{{WebExtAPIRef("tabGroups")}}.
- :
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}}- :
stringorarrayofstring. 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. Theidof 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.tabsAPI. This documentation is derived fromtabs.jsonin the Chromium code.