tabs.query()
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
js
let querying = browser.tabs.query(queryObj)
Parameters
queryObj-
object. Thequery()function will only get tabs whose properties match the properties included here.See the
tabs.Tabdocumentation to learn more about these properties.activeOptional-
boolean. Whether the tabs are active in their windows. audibleOptional-
boolean. Whether the tabs are audible. autoDiscardableOptional-
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 bytabs.discard. -
stringorarrayofstring. Use this to return tabs whosetab.cookieStoreIdmatches any of thecookieStoreIdstrings. This option is only available if the add-on has the"cookies"permission. currentWindowOptional-
boolean. Whether the tabs are in the current window. discardedOptional-
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. -
boolean. Whether the tabs are hidden. highlightedOptional-
boolean. Whether the tabs are highlighted. indexOptional-
integer. The position of the tabs within their windows. mutedOptional-
boolean. Whether the tabs are muted. lastFocusedWindowOptional-
boolean. Whether the tabs are in the last focused window. pinnedOptional-
boolean. Whether the tabs are pinned. statusOptional-
tabs.TabStatus. Whether the tabs have completed loading. titleOptional-
string. Match page titles against a pattern. Requires the "tabs" permission or host permissions for the tab to match. urlOptional-
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. windowIdOptional-
integer. Theidof the parent window, orwindows.WINDOW_ID_CURRENTfor the current window. windowTypeOptional-
tabs.WindowType. The type of window the tabs are in.
Return value
Examples
Get all tabs:
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);
Get all tabs in the current window:
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);
Get the active tab in the current window:
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);
Get tabs for all HTTP and HTTPS URLs under "mozilla.org" or any of its subdomains:
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);
Example extensions
Browser compatibility
BCD tables only load in the browser
Note: This API is based on Chromium's chrome.tabs API. This documentation is derived from tabs.json in the Chromium code.