tabs.create()

建立一個新標籤頁。

這是一個非同步函式,返回一個 Promise

語法

js
let creating = browser.tabs.create(
  createProperties   // object
)

引數

createProperties

object。用於為新標籤頁設定屬性的物件。有關這些屬性的更多資訊,請參閱 tabs.Tab 文件。

active 可選

boolean。是否將標籤頁設定為視窗中的活動標籤頁。如果為 false,則無效。不會影響視窗是否獲得焦點(請參閱 windows.update)。預設為 true

cookieStoreId 可選

string。使用此項來建立 cookie 儲存 ID 為 cookieStoreId 的標籤頁。僅當擴充套件具有 "cookies" 許可權時,此選項才可用。有關更多資訊,請參閱 使用上下文身份

discarded 可選

boolean。是否建立標籤頁並使其在標籤欄中可見,而無需將任何內容載入到記憶體中,這種狀態稱為丟棄。標籤頁的內容將在啟用時載入。

index 可選

integer。標籤頁在視窗中應占據的位置。提供的值將被限制在零和視窗中的標籤頁數量之間。

muted 可選

boolean。是否應將標籤頁靜音。預設為 false

openerTabId 可選

integer。開啟此標籤頁的標籤頁的 ID。如果指定,則開啟者標籤頁必須與新建立的標籤頁位於同一視窗中。

openInReaderMode 可選

boolean。如果為 true,則在 閱讀模式 中開啟此標籤頁。預設為 false

pinned 可選

boolean。是否應將標籤頁固定。預設為 false

selected 可選

boolean。是否應將標籤頁設定為視窗中的選中標籤頁。預設為 true

警告:此屬性已棄用,在 Firefox 中不受支援。請改用 active

title 可選

string。標籤頁的標題。僅當使用 discarded 設定為 true 建立標籤頁時才允許。

url 可選

string。要初始導航到的標籤頁的 URL。預設為新標籤頁。

完全限定的 URL 必須包含方案(例如,'http://www.google.com' 而不是 'www.google.com')。

出於安全原因,在 Firefox 中,此項可能不是特權 URL。因此,傳遞任何以下 URL 都將失敗

  • chrome: URL
  • javascript: URL
  • data: URL
  • file: URL(即檔案系統上的檔案。但是,要使用打包在擴充套件中的檔案,請參閱下文)
  • 特權 about: URL(例如,about:configabout:addonsabout:debugging)。非特權 URL(例如,about:blank)是允許的。
  • 如果未提供 URL 值,則可以開啟新標籤頁(about:newtab)。

要載入與擴充套件一起打包的頁面,請指定一個以擴充套件的 manifest.json 檔案開頭的絕對 URL。例如:'/path/to/my-page.html'。如果省略前導 '/',則 URL 被視為相對 URL,不同的瀏覽器可能會構建不同的絕對 URL。

windowId 可選

integer。要在其中建立新標籤頁的視窗。預設為當前視窗。

返回值

一個 Promise,它將使用一個包含已建立標籤頁詳細資訊的 tabs.Tab 物件來解析。如果無法建立標籤頁(例如,因為 url 使用了特權方案),則 Promise 將以錯誤訊息被拒絕。

browser.tabs.create() 返回的 Promise 在標籤頁建立完成後立即解析。標籤頁可能仍在載入中。要檢測標籤頁何時載入完成,請在呼叫 tabs.create 之前監聽 tabs.onUpdatedwebNavigation.onCompleted 事件。

示例

在新標籤頁中開啟 "https://example.org"

js
function onCreated(tab) {
  console.log(`Created new tab: ${tab.id}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

browser.browserAction.onClicked.addListener(() => {
  let creating = browser.tabs.create({
    url: "https://example.org",
  });
  creating.then(onCreated, onError);
});

擴充套件程式示例

瀏覽器相容性

注意:此 API 基於 Chromium 的 chrome.tabs API。此文件摘自 Chromium 程式碼中的 tabs.json