tabs.duplicate()

复制一个标签页,需要提供其 ID。

这是一个异步函数,返回一个 Promise

语法

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

参数

tabId

integer。要复制的标签页的 ID。

duplicateProperties 可选

object。一个描述标签页如何被复制的对象。它包含以下属性

index 可选

integer。新标签页在窗口中的位置。该值被限制在零到窗口标签页数量的范围内。

active 可选

boolean。标签页是否成为窗口中的活动标签页。不影响窗口是否获得焦点。默认为 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);

扩展程序示例

浏览器兼容性

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