tabs.duplicate()

复制给定 ID 的选项卡。

这是一个返回 Promise 的异步函数。

语法

js
let duplicating = browser.tabs.duplicate(
  tabId,              // integer
  duplicateProperties // optional object
)

参数

tabId

整数。要复制的选项卡的 ID。

duplicateProperties 可选

对象。一个描述如何复制选项卡的对象。它包含以下属性

index 可选

整数。新选项卡在窗口中的位置。该值限制在窗口中选项卡数量的零到该数量的范围内。

active 可选

布尔值。选项卡是否成为窗口中的活动选项卡。不影响窗口是否处于焦点状态。默认为 true

返回值

一个 Promise,它将使用包含有关复制选项卡详细信息的 tabs.Tab 对象来实现。如果扩展具有 "tabs" 权限 或匹配的 主机权限,则 Tab 对象仅包含 urltitlefavIconUrl。如果发生任何错误,则 promise 将被拒绝并显示错误消息。

注意:从 Firefox 68 开始,browser.tabs.duplicate() 返回的 promise 在选项卡被复制后立即解析。以前,promise 仅在选项卡完全加载后才解析。

示例

复制第一个选项卡,然后记录新创建选项卡的 ID

js
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);

扩展示例

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

注意:此 API 基于 Chromium 的 chrome.tabs API。此文档源自 Chromium 代码中的 tabs.json