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