跳到主要內容

Chrome 擴充功能支援

Electron 支援 Chrome 擴充功能 API 的子集,主要用於支援 DevTools 擴充功能和 Chromium 內部擴充功能,但也碰巧支援其他一些擴充功能。

注意: Electron 不支援來自商店的任意 Chrome 擴充功能,並且與 Chrome 的擴充功能實作完美相容並非 Electron 專案的目標

載入擴充功能

Electron 僅支援載入未封裝的擴充功能(即,.crx 檔案無法運作)。擴充功能是按 session 安裝的。若要載入擴充功能,請呼叫 ses.loadExtension

const { session } = require('electron')

session.defaultSession.loadExtension('path/to/unpacked/extension').then(({ id }) => {
// ...
})

載入的擴充功能不會在跨退出時自動記住;如果您在應用程式執行時未呼叫 loadExtension,則不會載入擴充功能。

請注意,僅持久性 session 支援載入擴充功能。嘗試將擴充功能載入到記憶體內 session 將會拋出錯誤。

請參閱 session 文件,以取得有關載入、卸載和查詢作用中擴充功能的更多資訊。

支援的擴充功能 API

我們支援以下擴充功能 API,但有一些注意事項。可能還支援其他 API,但未在此處列出的任何 API 的支援都是暫時性的,可能會被移除。

支援的 Manifest 鍵

  • name
  • version
  • author
  • permissions
  • content_scripts
  • default_locale
  • devtools_page
  • short_name
  • host_permissions (Manifest V3)
  • manifest_version
  • background (Manifest V2)
  • minimum_chrome_version

請參閱 Manifest 檔案格式 以取得有關每個可能鍵的用途的更多資訊。

chrome.devtools.inspectedWindow

支援此 API 的所有功能。

請參閱 官方文件 以取得更多資訊。

chrome.devtools.network

支援此 API 的所有功能。

請參閱 官方文件 以取得更多資訊。

chrome.devtools.panels

支援此 API 的所有功能。

請參閱 官方文件 以取得更多資訊。

chrome.extension

支援 chrome.extension 的以下屬性

  • chrome.extension.lastError

支援 chrome.extension 的以下方法

  • chrome.extension.getURL
  • chrome.extension.getBackgroundPage

請參閱 官方文件 以取得更多資訊。

chrome.management

支援 chrome.management 的以下方法

  • chrome.management.getAll
  • chrome.management.get
  • chrome.management.getSelf
  • chrome.management.getPermissionWarningsById
  • chrome.management.getPermissionWarningsByManifest

支援 chrome.management 的以下事件

  • chrome.management.onEnabled
  • chrome.management.onDisabled

請參閱 官方文件 以取得更多資訊。

chrome.runtime

支援 chrome.runtime 的以下屬性

  • chrome.runtime.lastError
  • chrome.runtime.id

支援 chrome.runtime 的以下方法

  • chrome.runtime.getBackgroundPage
  • chrome.runtime.getManifest
  • chrome.runtime.getPlatformInfo
  • chrome.runtime.getURL
  • chrome.runtime.connect
  • chrome.runtime.sendMessage
  • chrome.runtime.reload

支援 chrome.runtime 的以下事件

  • chrome.runtime.onStartup
  • chrome.runtime.onInstalled
  • chrome.runtime.onSuspend
  • chrome.runtime.onSuspendCanceled
  • chrome.runtime.onConnect
  • chrome.runtime.onMessage

請參閱 官方文件 以取得更多資訊。

chrome.scripting

支援此 API 的所有功能。

請參閱 官方文件 以取得更多資訊。

chrome.storage

支援 chrome.storage 的以下方法

  • chrome.storage.local

支援 chrome.storage.syncchrome.storage.managed

請參閱 官方文件 以取得更多資訊。

chrome.tabs

支援 chrome.tabs 的以下方法

  • chrome.tabs.sendMessage
  • chrome.tabs.reload
  • chrome.tabs.executeScript
  • chrome.tabs.query(部分支援)
    • 支援的屬性:urltitleaudibleactivemuted
  • chrome.tabs.update(部分支援)
    • 支援的屬性:urlmuted

注意: 在 Chrome 中,將 -1 作為 tab ID 表示「目前活動的 tab」。由於 Electron 沒有此概念,因此不支援將 -1 作為 tab ID 傳遞,並且會引發錯誤。

請參閱 官方文件 以取得更多資訊。

chrome.webRequest

支援此 API 的所有功能。

注意: 如果存在衝突的處理程序,Electron 的 webRequest 模組優先於 chrome.webRequest

請參閱 官方文件 以取得更多資訊。