API 參考資料

大多數擴充功能都需要存取一或多個 Chrome Extensions API 才能運作。這份 API 參考資料說明可在擴充功能中使用的 API,並示範用途範例。

常見的 Extensions API 功能

Extensions API 包含命名空間,其中包含用於執行擴充功能的方法和屬性,通常但並非一定是 manifest.json 檔案的資訊清單欄位。舉例來說,chrome.action 命名空間需要資訊清單中的 "action" 物件。許多 API 也需要資訊清單中的權限

除非另有指明,否則擴充功能 API 中的方法均採用非同步模式。非同步方法會立即傳回,而不會等待呼叫這些方法完成的作業。使用 promise 即可取得這些方法的結果。詳情請參閱非同步方法

Chrome 擴充功能 API

accessibilityFeatures

使用 chrome.accessibilityFeatures API 管理 Chrome 的無障礙功能。這個 API 會使用 API 類型的 ChromeSetting 原型,才能取得及設定各項無障礙功能。擴充功能必須要求 accessibilityFeatures.read 權限,才能取得功能狀態。如要修改功能狀態,擴充功能需要 accessibilityFeatures.modify 權限。請注意,accessibilityFeatures.modify 並不表示 accessibilityFeatures.read 權限。

動作
Chrome 88 以上版本 MV3 以上版本

使用 chrome.action API 控制 Google Chrome 工具列中的擴充功能圖示。

鬧鐘

請使用 chrome.alarms API 排定程式碼,讓系統定期或未來的特定時間執行程式碼。

音訊
Chrome 59 以上版本 僅限 ChromeOS

使用者可利用 chrome.audio API,取得及控制連接至系統的音訊裝置。這個 API 目前僅適用於 ChromeOS 的 Kiosk 模式。

書籤

使用 chrome.bookmarks API 建立、整理及控制書籤。此外,您也可以參閱「覆寫網頁」,以便建立自訂書籤管理員頁面。

browsingData

使用 chrome.browsingData API 從使用者的本機設定檔中移除瀏覽資料。

certificateProvider
適用於 Chrome 46 以上版本 僅限 ChromeOS

請使用這個 API 向平台公開憑證,讓該平台使用這些憑證執行傳輸層安全標準 (TLS) 驗證。

指令

你可以使用指令 API 新增鍵盤快速鍵,藉此在擴充功能中觸發某些動作,例如開啟瀏覽器動作的動作,或是傳送指令給擴充功能。

contentSettings

你可以使用 chrome.contentSettings API 變更設定,控管網站能否使用 Cookie、JavaScript 和外掛程式等功能。一般來說,內容設定可讓您自訂個別網站 (而非全球) 的行為。

contextMenus

使用 chrome.contextMenus API 將項目新增至 Google Chrome 的內容選單。您可以選擇內容選單要新增的物件類型,例如圖片、超連結和網頁。

Cookie

使用 chrome.cookies API 查詢及修改 Cookie,並在 Cookie 變更時收到通知。

debugger

chrome.debugger API 是 Chrome 遠端偵錯通訊協定的替代傳輸方式。使用 chrome.debugger 附加至一或多個分頁,以檢測網路互動、對 JavaScript 偵錯、變更 DOM 與 CSS 等等。使用 Debuggee tabId,透過 onEvent 回呼的 tabId,使用 sendCommand 和 route 事件指定分頁。

declarativeContent

使用 chrome.declarativeContent API 依據網頁內容執行動作,不必取得網頁內容的讀取權限。

declarativeNetRequest
Chrome 84 以上版本

chrome.declarativeNetRequest API 可讓您透過指定宣告式規則來封鎖或修改網路要求。這項功能可讓擴充功能修改網路要求,而不會攔截及查看內容,進一步保障隱私權。

desktopCapture

Desktop Capture API 會擷取畫面、個別視窗或個別分頁的內容,

devtools.inspectedWindow

請使用 chrome.devtools.inspectedWindow API 與受檢查的視窗互動:取得已檢查網頁的分頁 ID、在所檢查視窗的內容中評估程式碼、重新載入頁面,或取得頁面中的資源清單。

devtools.network

針對「網路」面板中的開發人員工具顯示的網路要求,您可以使用 chrome.devtools.network API 擷取相關網路要求的相關資訊。

devtools.panels

使用 chrome.devtools.panels API,將擴充功能整合至開發人員工具視窗使用者介面:建立專屬面板、存取現有面板以及新增側欄。

devtools.recorder
Chrome 105 以上版本

使用 chrome.devtools.recorder API 自訂開發人員工具中的「錄音工具」面板。

dns
開發人員版本

使用 chrome.dns API 進行 DNS 解析。

documentScan
Chrome 44 以上版本 僅限 ChromeOS

使用 chrome.documentScan API 即可從附加的文件掃描器探索及擷取圖片。

dom
Chrome 88 以上版本

使用 chrome.dom API 存取擴充功能的特殊 DOM API

下載

使用 chrome.downloads API,以程式輔助方式啟動、監控、操控及搜尋下載內容。

enterprise.deviceAttributes
適用於 Chrome 46 以上版本 僅適用於 ChromeOS 需要政策

請使用 chrome.enterprise.deviceAttributes API 讀取裝置屬性。注意:這個 API 僅適用於由企業政策強制安裝的擴充功能。

enterprise.hardwarePlatform
Chrome 71 以上版本 需要政策

使用 chrome.enterprise.hardwarePlatform API,取得執行瀏覽器的硬體平台製造商和型號。注意:這個 API 僅適用於透過企業政策安裝的擴充功能。

enterprise.networkingAttributes
適用於 Chrome 85 以上版本 僅限 ChromeOS 需要政策

使用 chrome.enterprise.networkingAttributes API 讀取目前網路的相關資訊。注意:這個 API 僅適用於由企業政策強制安裝的擴充功能。

enterprise.platformKeys
僅限 ChromeOS 需要政策

請使用 chrome.enterprise.platformKeys API 產生這些金鑰的金鑰並安裝憑證。憑證會由平台管理,可用於 TLS 驗證、網路存取,或經由 {@linkplatformKeys chrome.platformKeys} 供其他擴充功能使用。

事件

chrome.events 命名空間包含 API 分派事件經常使用的類型,會在發生有趣事件時通知您。

擴充功能

任何擴充功能頁面皆可使用 chrome.extension API 的公用程式。包括支援在擴充功能與內容指令碼之間或擴充功能之間交換訊息,詳情請參閱訊息傳送

extensionTypes

chrome.extensionTypes API 包含 Chrome 擴充功能的類型宣告。

fileBrowserHandler
僅限 ChromeOS 僅限前景

使用 chrome.fileBrowserHandler API 擴充 Chrome OS 檔案瀏覽器。舉例來說,您可以使用這個 API 讓使用者將檔案上傳至您的網站。

fileSystemProvider
僅適用於 ChromeOS

使用 chrome.fileSystemProvider API 建立檔案系統 (可透過 Chrome OS 的檔案管理員存取)。

fontSettings

請使用 chrome.fontSettings API 管理 Chrome 的字型設定。

gcm

使用 chrome.gcm 即可讓應用程式和擴充功能透過 Firebase 雲端通訊 (FCM) 收發訊息。

觀看記錄

使用 chrome.history API 與瀏覽器的造訪網頁記錄互動。您可以新增、移除網址,以及查詢瀏覽器記錄中的網址。如要使用您自己的版本覆寫歷史記錄頁面,請參閱覆寫頁面

i18n

使用 chrome.i18n 基礎架構,為整個應用程式或擴充功能實現國際化。

身分識別

使用 chrome.identity API 取得 OAuth2 存取權杖。

閒置

使用 chrome.idle API 偵測機器的閒置狀態何時變更。

input.ime

使用 chrome.input.ime API 為 Chrome 作業系統實作自訂輸入法編輯器。如此一來,您的擴充功能就能處理按鍵動作、設定組合及管理候選視窗。

instanceID
Chrome 44 以上版本

請使用 chrome.instanceID 存取執行個體 ID 服務。

loginState
Chrome 78 以上版本 僅限 ChromeOS

使用 chrome.loginState API 讀取及監控登入狀態。

管理

chrome.management API 可讓您管理已安裝及執行的擴充功能/應用程式清單。這對覆寫內建新分頁的擴充功能來說特別實用。

通知

使用 chrome.notifications API 使用範本建立複合式通知,並在系統匣中向使用者顯示這些通知。

畫面外
Chrome 109 以上版本 MV3 以上版本

使用 offscreen API 建立及管理畫面外文件。

網址列

網址列 API 可讓您在 Google Chrome 的網址列 (又稱為網址列) 登錄關鍵字。

pageCapture

使用 chrome.pageCapture API 將分頁儲存為 MHTML。

權限

使用 chrome.permissions API 在執行階段要求宣告選用權限,而非在安裝時要求權限,讓使用者瞭解需要權限的原因,並僅授予必要的權限。

platformKeys
Chrome 45 以上版本 僅限 ChromeOS

使用 chrome.platformKeys API 存取由平台管理的用戶端憑證。如果使用者或政策授予權限,擴充功能就可以在自訂驗證通訊協定中使用這類憑證。例如,這允許在第三方 VPN 中使用平台代管憑證 (請參閱 {@link vpnProvider chrome.vpnProvider})。

電源

使用 chrome.power API 覆寫系統的電源管理功能。

printerProvider
Chrome 44 以上版本

chrome.printerProvider API 會公開列印管理員用來查詢擴充功能控制的印表機的事件,以便查詢擴充功能的功能,以及將列印工作提交給這些印表機。

列印
Chrome 81 以上版本 僅限 ChromeOS

使用 chrome.printing API 將列印工作傳送至安裝在 Chromebook 上的印表機。

printingMetrics
適用於 Chrome 79 以上版本 僅限 ChromeOS 需要政策

使用 chrome.printingMetrics API 擷取列印用量相關資料。

隱私權

使用 chrome.privacy API 控管 Chrome 中會影響使用者隱私權的功能使用情形。這個 API 會使用 API 類型的 ChromeSetting 原型取得及設定 Chrome 的設定。

程序
開發人員版本

使用 chrome.processes API 與瀏覽器的程序互動。

Proxy

使用 chrome.proxy API 管理 Chrome 的 Proxy 設定。這個 API 會使用 API 類型的 ChromeSetting 原型取得及設定 Proxy 設定。

readingList
Chrome 120 以上版本 MV3 以上版本

使用 chrome.readingList API 讀取及修改閱讀清單中的項目。

執行階段

使用 chrome.runtime API 擷取 Service Worker、傳回資訊清單相關詳細資料,以及監聽及回應擴充功能生命週期中的事件。您也可以使用這個 API,將網址的相對路徑轉換為完整網址。

編寫指令碼
Chrome 88 以上版本 MV3 以上版本

使用 chrome.scripting API 在不同情況下執行指令碼。

search
Chrome 87 以上版本

使用 chrome.search API,透過預設提供者搜尋。

工作階段

使用 chrome.sessions API 查詢及還原瀏覽工作階段中的分頁和視窗。

sidePanel
Chrome 114 以上版本 MV3 以上版本

使用 chrome.sidePanel API 將網頁的主要內容放在瀏覽器的側邊面板中。

儲存空間

使用 chrome.storage API 儲存、擷取及追蹤使用者資料的變更。

system.cpu

使用 system.cpu API 查詢 CPU 中繼資料。

system.display

使用 system.display API 查詢顯示中繼資料。

system.memory

chrome.system.memory API。

system.storage

使用 chrome.system.storage API 查詢儲存裝置資訊,並在卸除式儲存裝置連接和卸離時接收通知。

systemLog
待處理 僅限 ChromeOS 需要政策

使用 chrome.systemLog API 記錄擴充功能的 Chrome 系統記錄。

tabCapture

使用 chrome.tabCapture API 與分頁媒體串流互動。

tabGroups
Chrome 89 以上版本 MV3 以上版本

使用 chrome.tabGroups API 與瀏覽器的分頁分組系統互動。您可以使用這個 API 在瀏覽器中修改及重新排列分頁群組。如要將分頁分組或取消分組,或查詢群組中的分頁,請使用 chrome.tabs API。

分頁

使用 chrome.tabs API 與瀏覽器的分頁系統互動。您可以使用這個 API 在瀏覽器中建立、修改及重新排列分頁。

topSites

使用 chrome.topSites API 即可存取新分頁上顯示的熱門網站,例如最常造訪的網站。不包含使用者自訂的快速鍵。

tts

使用 chrome.tts API 播放合成的文字轉語音 (TTS)。另請參閱相關的 {@link ttsEngine} API,這個 API 可讓擴充功能實作語音引擎。

ttsEngine

透過 chrome.ttsEngine API,使用擴充功能實作文字轉語音(TTS) 引擎。如果您的擴充功能使用這個 API 註冊,當任何擴充功能或 Chrome 應用程式使用 {@link tts} API 產生語音時,即會收到含有語音內容的事件和其他參數。接著,您的擴充功能就能使用任何可用的網路技術合成及輸出語音內容,並將事件傳回呼叫函式來回報狀態。

類型

chrome.types API 包含 Chrome 的類型宣告。

userScripts
Chrome 120 以上版本 MV3 以上版本

使用 userScripts API,在 User Script 環境中執行使用者指令碼。

vpnProvider
Chrome 43 以上版本 僅限 ChromeOS

使用 chrome.vpnProvider API 實作 VPN 用戶端。

桌布
Chrome 43 以上版本 僅限 ChromeOS

使用 chrome.wallpaper API 變更 ChromeOS 桌布。

webAuthenticationProxy
Chrome 115 以上版本 MV3 以上版本

透過 chrome.webAuthenticationProxy API,在遠端主機上執行的遠端桌面軟體會攔截 Web Authentication API (WebAuthn) 要求,以便在本機用戶端上處理這類要求。

webNavigation

使用 chrome.webNavigation API 接收傳輸中導航要求的狀態通知。

webRequest

使用 chrome.webRequest API 觀察及分析流量,以及攔截、封鎖或修改傳輸中的要求。

視窗

使用 chrome.windows API 與瀏覽器視窗互動。您可以使用這個 API 在瀏覽器中建立、修改及重新排列視窗。