tabs

與瀏覽器的標籤頁系統進行互動。

注意: 使用 Manifest V3 或更高版本時,執行指令碼、插入 CSS 和移除 CSS 的方法由 scripting API 透過 scripting.executeScript()scripting.insertCSS()scripting.removeCSS() 方法提供。

您可以使用此 API 獲取開啟的標籤頁列表(可根據各種條件進行篩選),以及開啟、更新、移動、重新載入和移除標籤頁。您無法使用此 API 直接訪問標籤頁中託管的內容,但可以使用 tabs.executeScript()tabs.insertCSS() API 將 JavaScript 和 CSS 插入到標籤頁中。

您可以使用此 API 的大部分功能而無需任何特殊許可權。但是

  • 要訪問 Tab.urlTab.titleTab.favIconUrl(或透過 tabs.query() 根據這些屬性進行篩選),您需要擁有 "tabs" 許可權,或者擁有與 Tab.url 匹配的主機許可權

    • 自 Firefox 86 和 Chrome 50 起支援透過主機許可權訪問這些屬性。在 Firefox 85 及更早版本中,則需要“tabs”許可權。
  • 要使用 tabs.executeScript()tabs.insertCSS(),您必須擁有該標籤頁的主機許可權

另外,您可以透過請求 "activeTab" 許可權,暫時獲取這些許可權,僅適用於當前活動的標籤頁,並且僅在響應明確的使用者操作時。

許多標籤頁操作使用 Tab id。Tab id 在單個瀏覽器會話中保證是唯一的。如果瀏覽器重啟,則可以並且會重用 tab id。要在瀏覽器重啟後將資訊與標籤頁關聯,請使用 sessions.setTabValue()

型別

tabs.MutedInfoReason

指定標籤頁被靜音或取消靜音的原因。

tabs.MutedInfo

此物件包含一個布林值,指示標籤頁是否已靜音,以及上次狀態更改的原因。

tabs.PageSettings

用於控制 tabs.saveAsPDF() 方法如何將標籤頁渲染為 PDF。

tabs.Tab

此型別包含有關標籤頁的資訊。

tabs.TabStatus

指示標籤頁是否已完成載入。

tabs.WindowType

承載此標籤頁的視窗型別。

tabs.ZoomSettingsMode

定義縮放更改是由瀏覽器處理、由擴充套件程式處理還是被停用。

tabs.ZoomSettingsScope

定義縮放更改是會保留頁面的來源,還是僅在此標籤頁中生效。

tabs.ZoomSettings

定義縮放設定 modescope 和預設縮放因子。

屬性

tabs.TAB_ID_NONE

賦予非瀏覽器標籤頁(例如,開發者工具視窗中的標籤頁)的特殊 ID 值。

函式

tabs.captureTab()

建立一個數據 URL,該 URL 編碼了給定標籤頁可見區域的影像。

tabs.captureVisibleTab()

建立一個數據 URL,該 URL 編碼了指定視窗中當前活動標籤頁可見區域的影像。

tabs.connect()

在擴充套件程式的後臺指令碼(或其他特權指令碼,如彈出視窗指令碼或選項頁尾本)與在指定標籤頁中執行的任何內容指令碼之間建立訊息連線。

tabs.create()

建立一個新標籤頁。

tabs.detectLanguage()

檢測標籤頁中內容的主要語言。

tabs.discard()

丟棄一個或多個標籤頁。

tabs.duplicate()

複製一個標籤頁。

tabs.executeScript()(僅限 Manifest V2)

將 JavaScript 程式碼注入頁面。

tabs.get()

檢索有關指定標籤頁的詳細資訊。

tabs.getAllInWindow() 已廢棄

獲取指定視窗中所有標籤頁的詳細資訊。

tabs.getCurrent()

tabs.Tab 物件的形式獲取此指令碼正在執行的標籤頁資訊。

tabs.getSelected() 已廢棄

獲取指定視窗中選定的標籤頁。已廢棄:請改用 tabs.query({active: true})

tabs.getZoom()

獲取指定標籤頁的當前縮放因子。

tabs.getZoomSettings()

獲取指定標籤頁的當前縮放設定。

tabs.goForward()

如果可用,前進到下一頁。

tabs.goBack()

如果可用,返回上一頁。

tabs.group()

將標籤頁新增到標籤頁組。

tabs.hide() 實驗性

隱藏一個或多個標籤頁。

tabs.highlight()

突出顯示一個或多個標籤頁。

tabs.insertCSS()(僅限 Manifest V2)

將 CSS 注入頁面。

tabs.move()

將一個或多個標籤頁移動到同一視窗中的新位置或不同的視窗。

tabs.moveInSuccession()

修改一組標籤頁的連續關係。

tabs.print()

列印活動標籤頁的內容。

tabs.printPreview()

開啟活動標籤頁的列印預覽。

tabs.query()

獲取所有具有指定屬性的標籤頁,如果未指定屬性,則獲取所有標籤頁。

tabs.reload()

重新載入標籤頁,可選地繞過本地網路快取。

tabs.remove()

關閉一個或多個標籤頁。

tabs.removeCSS()(僅限 Manifest V2)

從頁面中移除之前透過呼叫 tabs.insertCSS() 注入的 CSS。

tabs.saveAsPDF()

將當前頁面儲存為 PDF。

tabs.sendMessage()

向指定標籤頁中的內容指令碼傳送單條訊息。

tabs.sendRequest() 已廢棄

向指定標籤頁中的內容指令碼傳送單條請求。已廢棄:請改用 tabs.sendMessage()

tabs.setZoom()

縮放指定的標籤頁。

tabs.setZoomSettings()

設定指定標籤頁的縮放設定。

tabs.show() 實驗性

顯示一個或多個已隱藏的標籤頁。

tabs.toggleReaderMode()

切換指定標籤頁的閱讀器模式。

tabs.ungroup()

從標籤頁組中移除標籤頁。

tabs.update()

將標籤頁導航到新的 URL,或修改標籤頁的其他屬性。

tabs.warmup()

預熱標籤頁以加快後續切換。

事件

tabs.onActivated

當視窗中活動標籤頁更改時觸發。請注意,此事件觸發時標籤頁的 URL 可能尚未設定。

tabs.onActiveChanged 已廢棄

當視窗中選定的標籤頁更改時觸發。已廢棄:請改用 tabs.onActivated

tabs.onAttached

當標籤頁附加到視窗時觸發,例如因為它在視窗之間移動。

tabs.onCreated

當標籤頁建立時觸發。請注意,此事件觸發時標籤頁的 URL 可能尚未設定。

tabs.onDetached

當標籤頁從視窗分離時觸發,例如因為它正在視窗之間移動。

tabs.onHighlightChanged 已廢棄

當視窗中突出顯示或選定的標籤頁更改時觸發。已廢棄:請改用 tabs.onHighlighted

tabs.onHighlighted

當視窗中突出顯示或選定的標籤頁更改時觸發。

tabs.onMoved

當標籤頁在視窗內移動時觸發。

tabs.onRemoved

當標籤頁關閉時觸發。

tabs.onReplaced

當標籤頁因預渲染而被另一個標籤頁替換時觸發。

tabs.onSelectionChanged 已廢棄

當視窗中選定的標籤頁更改時觸發。已廢棄:請改用 tabs.onActivated

tabs.onUpdated

當標籤頁更新時觸發。

tabs.onZoomChange

當標籤頁縮放時觸發。

擴充套件程式示例

瀏覽器相容性

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