大多数扩展程序都需要访问一个或多个 Chrome 扩展程序 API 才能正常运行。此 API 参考文档介绍了可在扩展程序中使用的 API,并提供了示例用例。
从 Chrome 148 开始,这些 API 也可在 browser 命名空间下使用,作为 chrome 的跨浏览器替代方案。如需了解采用指南,请参阅浏览器命名空间。
Common Extensions API 功能
扩展程序 API 由一个命名空间组成,其中包含用于执行扩展程序工作的方法和属性,并且通常(但不一定)包含 manifest.json 文件的清单字段。例如,chrome.action 命名空间需要在清单中包含 "action" 对象。许多 API 还要求在清单中添加权限。
除非另有说明,否则扩展 API 中的方法是异步的。异步方法会立即返回,而无需等待调用它们的操作完成。使用 promise 获取这些异步方法的结果。
Chrome 扩展程序 API
- accessibilityFeatures
-
使用
chrome.accessibilityFeaturesAPI 管理 Chrome 的无障碍功能。此 API 依赖于 ChromeSetting 类型的 API 原型来获取和设置各个无障碍功能。为了获取功能状态,扩展程序必须请求accessibilityFeatures.read权限。如需修改功能状态,扩展程序需要accessibilityFeatures.modify权限。请注意,accessibilityFeatures.modify并不意味着拥有accessibilityFeatures.read权限。 - 操作
-
Chrome 88 及更高版本 MV3+
使用
chrome.actionAPI 控制 Google Chrome 工具栏中的扩展程序图标。 - alarms
-
使用
chrome.alarmsAPI 安排代码在指定时间或未来某个时间定期运行。 - 音频
-
Chrome 59 及更高版本 仅限 ChromeOS
chrome.audioAPI 可供用户获取有关连接到系统的音频设备的信息并控制这些设备。此 API 目前仅在 ChromeOS 的自助服务终端模式下可用。 - 书签
-
使用
chrome.bookmarksAPI 可创建、整理和以其他方式操作书签。另请参阅替换网页,您可以使用该功能创建自定义书签管理器页面。 - browsingData
-
使用
chrome.browsingDataAPI 从用户的本地个人资料中移除浏览数据。 - certificateProvider
-
Chrome 46 及更高版本 仅限 ChromeOS
使用此 API 向平台公开证书,平台可以使用这些证书进行 TLS 身份验证。
- 命令
-
使用 Commands API 添加可在扩展程序中触发操作的键盘快捷键,例如用于打开浏览器操作或向扩展程序发送命令的操作。
- contentSettings
-
使用
chrome.contentSettingsAPI 更改用于控制网站是否可以使用 Cookie、JavaScript 和插件等功能的设置。更一般地说,内容设置允许您按网站自定义 Chrome 的行为,而不是全局自定义。 - contextMenus
-
使用
chrome.contextMenusAPI 可向 Google Chrome 的上下文菜单添加项。您可以选择上下文菜单添加项所适用的对象类型,例如图片、超链接和网页。 - Cookie
-
使用
chrome.cookiesAPI 可查询和修改 Cookie,并在 Cookie 发生更改时收到通知。 - 调试器
-
chrome.debuggerAPI 可作为 Chrome 远程调试协议的替代传输方式。使用chrome.debugger附加到一个或多个标签页,以检测网络互动、调试 JavaScript、更改 DOM 和 CSS 等。使用Debuggee属性tabId可通过sendCommand定位标签页,并通过onEvent回调中的tabId路由事件。 - declarativeContent
-
使用
chrome.declarativeContentAPI 根据网页内容采取行动,而无需获得读取网页内容的权限。 - declarativeNetRequest
-
Chrome 84 及更高版本
chrome.declarativeNetRequestAPI 用于通过指定声明性规则来屏蔽或修改网络请求。这样一来,扩展程序就可以在不拦截网络请求和查看其内容的情况下修改网络请求,从而提供更高的隐私保护。 - desktopCapture
-
屏幕内容截取 API 可捕获屏幕、单个窗口或单个标签页的内容。
- devtools.inspectedWindow
-
使用
chrome.devtools.inspectedWindowAPI 与检查的窗口互动:获取检查的网页的标签页 ID、在检查的窗口的上下文中评估代码、重新加载网页,或获取网页中的资源列表。 - devtools.network
-
使用
chrome.devtools.networkAPI 可检索开发者工具在“网络”面板中显示的网络请求的相关信息。 - devtools.panels
-
使用
chrome.devtools.panelsAPI 将扩展程序集成到开发者工具窗口界面中:创建自己的面板、访问现有面板和添加边栏。 - devtools.performance
-
Chrome 129 及更高版本
使用
chrome.devtools.performanceAPI 监听开发者工具中“性能”面板的记录状态更新。 - devtools.recorder
-
Chrome 105 及更高版本
使用
chrome.devtools.recorderAPI 自定义开发者工具中的“记录器”面板。 - dns
-
开发渠道
使用
chrome.dnsAPI 进行 DNS 解析。 - documentScan
-
Chrome 44 及更高版本 仅限 ChromeOS
使用
chrome.documentScanAPI 从连接的文档扫描仪中发现和检索图片。 - dom
-
Chrome 88 及更高版本
使用
chrome.domAPI 访问扩展程序的特殊 DOM API - 下载
-
使用
chrome.downloadsAPI 以编程方式启动、监控、操纵和搜索下载。 - enterprise.deviceAttributes
-
使用
chrome.enterprise.deviceAttributesAPI 读取设备属性。注意:此 API 仅适用于根据企业政策强制安装的扩展程序。 - enterprise.hardwarePlatform
-
Chrome 71 及更高版本 需要政策
使用
chrome.enterprise.hardwarePlatformAPI 获取浏览器运行的硬件平台的制造商和型号。注意:此 API 仅适用于由企业政策安装的扩展程序。 - enterprise.login
-
使用
chrome.enterprise.loginAPI 退出受管理的访客会话。注意:此 API 仅适用于在 ChromeOS 受管理的访客会话中由企业政策安装的扩展程序。 - enterprise.networkingAttributes
-
使用
chrome.enterprise.networkingAttributesAPI 读取有关当前网络的信息。注意:此 API 仅适用于根据企业政策强制安装的扩展程序。 - enterprise.platformKeys
-
仅限 ChromeOS 需要政策
使用
chrome.enterprise.platformKeysAPI 生成密钥并为这些密钥安装证书。这些证书将由平台管理,可用于 TLS 身份验证、网络访问或通过 chrome.platformKeys 由其他扩展程序使用。 - 事件
-
chrome.events命名空间包含 API 在调度事件时使用的常见类型,用于在发生值得注意的事情时通知您。 - extension
-
chrome.extensionAPI 具有可供任何扩展程序页面使用的实用程序。它支持在扩展程序及其内容脚本之间或在扩展程序之间交换消息,如消息传递中所述。 - extensionTypes
-
chrome.extensionTypesAPI 包含 Chrome 扩展程序的类型声明。 - fileBrowserHandler
-
仅限 ChromeOS 仅限前台
使用
chrome.fileBrowserHandlerAPI 扩展 Chrome OS 文件浏览器。例如,您可以使用此 API 让用户将文件上传到您的网站。 - fileSystemProvider
-
仅限 ChromeOS
使用
chrome.fileSystemProviderAPI 创建可通过 ChromeOS 上的文件管理器访问的文件系统。 - fontSettings
-
使用
chrome.fontSettingsAPI 管理 Chrome 的字体设置。 - gcm
-
使用
chrome.gcm可让应用和扩展程序通过 Firebase Cloud Messaging (FCM) 发送和接收消息。 - 历史记录
-
使用
chrome.historyAPI 与浏览器记录的已访问页面进行互动。您可以在浏览器的历史记录中添加、移除和查询网址。如需使用您自己的版本替换历史记录页面,请参阅替换页面。 - i18n
-
使用
chrome.i18n基础架构在整个应用或扩展程序中实现国际化。 - 身份
-
使用
chrome.identityAPI 获取 OAuth2 访问令牌。 - idle
-
使用
chrome.idleAPI 检测机器的空闲状态何时发生变化。 - input.ime
-
仅限 ChromeOS
使用
chrome.input.imeAPI 为 Chrome OS 实现自定义 IME。这样,扩展程序就可以处理按键、设置组合并管理候选字窗口。 - instanceID
-
Chrome 44 及更高版本
使用
chrome.instanceID访问实例 ID 服务。 - loginState
-
Chrome 78 及更高版本 仅限 ChromeOS
使用
chrome.loginStateAPI 读取和监控登录状态。 - 管理
-
chrome.managementAPI 提供了管理安装式应用和扩展程序的方式。 - 通知
-
使用
chrome.notificationsAPI 通过模板创建丰富通知,并在系统任务栏中向用户显示这些通知。 - offscreen
-
Chrome 109 及更高版本 MV3 及更高版本
使用
offscreenAPI 创建和管理屏幕外文档。 - 多功能框
-
借助多功能框 API,您可以向 Google Chrome 的地址栏(也称为多功能框)注册关键字。
- pageCapture
-
使用
chrome.pageCaptureAPI 将标签页另存为 MHTML。 - 权限
-
使用
chrome.permissionsAPI 在运行时(而非安装时)请求已声明为可选的权限,以便用户了解需要这些权限的原因,并仅授予必要的权限。 - platformKeys
-
Chrome 45 及更高版本 仅限 ChromeOS
使用
chrome.platformKeysAPI 访问由平台管理的客户端证书。如果用户或政策授予了相应权限,扩展程序便可在其自定义身份验证协议中使用此类证书。例如,这允许在第三方 VPN 中使用平台管理的证书(请参阅 chrome.vpnProvider)。 - power
-
使用
chrome.powerAPI 可替换系统的电源管理功能。 - printerProvider
-
Chrome 44 及更高版本
chrome.printerProviderAPI 会公开打印管理器使用的事件,以查询受扩展程序控制的打印机、查询这些打印机的功能,以及向这些打印机提交打印作业。 - 打印
-
Chrome 81 及更高版本 仅限 ChromeOS
使用
chrome.printingAPI 将打印作业发送到 Chromebook 上安装的打印机。 - printingMetrics
-
使用
chrome.printingMetricsAPI 获取有关打印使用情况的数据。 - 隐私权
-
使用
chrome.privacyAPI 来控制 Chrome 中可能会影响用户隐私的功能的使用情况。此 API 依赖于 ChromeSetting 类型的 API 原型来获取和设置 Chrome 的配置。 - 进程
-
开发渠道
使用
chrome.processesAPI 与浏览器的进程进行交互。 - proxy
-
使用
chrome.proxyAPI 管理 Chrome 的代理设置。此 API 依赖于 type API 的 ChromeSetting 原型来获取和设置代理配置。 - readingList
-
Chrome 120 及更高版本 MV3+
使用
chrome.readingListAPI 读取和修改阅读清单中的项目。 - runtime
-
使用
chrome.runtimeAPI 可检索 Service Worker、返回清单的相关详细信息,以及监听和响应扩展程序生命周期中的事件。您还可以使用此 API 将网址的相对路径转换为完全限定网址。 - 脚本
-
Chrome 88 及更高版本 MV3+
使用
chrome.scriptingAPI 在不同上下文中执行脚本。 - search
-
Chrome 87 及更高版本
使用
chrome.searchAPI 通过默认提供程序进行搜索。 - 会话
-
使用
chrome.sessionsAPI 查询和恢复浏览会话中的标签页和窗口。 - sidePanel
-
Chrome 114 及更高版本 MV3 及更高版本
使用
chrome.sidePanelAPI 在浏览器的侧边栏中托管内容,与网页的主要内容并排显示。 - 存储空间
-
使用
chrome.storageAPI 来存储、检索和跟踪用户数据的更改。 - system.cpu
-
使用
system.cpuAPI 查询 CPU 元数据。 - system.display
-
使用
system.displayAPI 查询展示元数据。 - system.memory
-
chrome.system.memoryAPI。 - system.storage
-
使用
chrome.system.storageAPI 可查询存储设备信息,并在可移动存储设备连接和断开连接时收到通知。 - systemLog
-
使用
chrome.systemLogAPI 从扩展程序记录 Chrome 系统日志。 - tabCapture
-
使用
chrome.tabCaptureAPI 与标签页媒体流进行互动。 - tabGroups
-
Chrome 89 及更高版本 MV3+
使用
chrome.tabGroupsAPI 与浏览器的标签页分组系统进行交互。您可以使用此 API 修改和重新排列浏览器中的标签页分组。如需对标签页进行分组和取消分组,或查询哪些标签页位于分组中,请使用chrome.tabsAPI。 - 标签页
-
使用
chrome.tabsAPI 与浏览器的标签页系统进行交互。您可以使用此 API 在浏览器中创建、修改和重新排列标签页。 - topSites
-
使用
chrome.topSitesAPI 访问新标签页上显示的热门网站(即最常访问的网站)。这些快捷方式不包括用户自定义的快捷方式。 - tts
-
使用
chrome.ttsAPI 播放合成的文字转语音 (TTS)。另请参阅相关的ttsEngineAPI,该 API 允许扩展程序实现语音引擎。 - ttsEngine
-
使用
chrome.ttsEngineAPI 通过扩展程序实现文字转语音(TTS) 引擎。如果您的扩展程序使用此 API 进行注册,那么当任何扩展程序或 Chrome 应用使用ttsAPI 生成语音时,该扩展程序都会收到包含要朗读的发言内容和其他参数的事件。然后,扩展程序可以使用任何可用的 Web 技术来合成和输出语音,并将事件发送回调用函数以报告状态。 - 类型
-
chrome.typesAPI 包含 Chrome 的类型声明。 - userScripts
-
Chrome 120 及更高版本 MV3+
使用
userScriptsAPI 在用户脚本上下文中执行用户脚本。 - vpnProvider
-
Chrome 43 及更高版本 仅限 ChromeOS
使用
chrome.vpnProviderAPI 实现 VPN 客户端。 - 壁纸
-
Chrome 43 及更高版本 仅限 ChromeOS
使用
chrome.wallpaperAPI 更改 ChromeOS 壁纸。 - webAuthenticationProxy
-
Chrome 115 及更高版本 MV3 及更高版本
借助
chrome.webAuthenticationProxyAPI,在远程主机上运行的远程桌面软件可以拦截 Web 身份验证 API (WebAuthn) 请求,以便在本地客户端上处理这些请求。 - webNavigation
-
使用
chrome.webNavigationAPI 接收有关正在处理的导航请求的状态的通知。 - webRequest
-
使用
chrome.webRequestAPI 可观察和分析流量,并拦截、阻止或修改正在处理的请求。 - windows
-
使用
chrome.windowsAPI 与浏览器窗口互动。您可以使用此 API 在浏览器中创建、修改和重新排列窗口。