tabs.duplicate()
Duplicates a tab, given its ID.
This is an asynchronous function that returns a Promise
.
Syntax
let duplicating = browser.tabs.duplicate(
tabId, // integer
duplicateProperties // optional object
)
Parameters
tabId
-
integer
. The ID of the tab to be duplicated. duplicateProperties
Optional-
object
. An object describing how the tab is duplicated. It contains the following properties:
Return value
A Promise
that will be fulfilled with a tabs.Tab
object containing details about the duplicated tab. The Tab
object only contains url
, title
and favIconUrl
if the extension has the "tabs"
permission or matching host permissions. If any error occurs the promise will be rejected with an error message.
Note: Beginning with Firefox 68, the promise returned by browser.tabs.duplicate() resolves as soon as the tab has been duplicated. Previously, the promise only resolved once the tab had fully been loaded.
Examples
Duplicate the first tab, and then log the ID of the newly created tab:
function onDuplicated(tabInfo) {
console.log(tabInfo.id);
}
function onError(error) {
console.log(`Error: ${error}`);
}
// Duplicate the first tab in the array
function duplicateFirstTab(tabs) {
console.log(tabs);
if (tabs.length > 0) {
let duplicating = browser.tabs.duplicate(tabs[0].id);
duplicating.then(onDuplicated, onError);
}
}
// Query for all open tabs
let querying = browser.tabs.query({});
querying.then(duplicateFirstTab, 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.