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 依赖 ChromeSetting 类型 API 的原型来获取和设置各项无障碍功能。如需获取功能状态,该扩展程序必须请求 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 的自助服务终端模式下使用。

书签

使用 chrome.bookmarks API 创建、整理以及以其他方式操纵书签。另请参阅覆盖网页(可用于创建自定义“书签管理器”页面)。

browsingData

使用 chrome.browsingData API 从用户的本地个人资料中移除浏览数据。

certificateProvider
Chrome 46 及更高版本 仅限 ChromeOS

使用此 API 将证书提供给可以使用这些证书进行 TLS 身份验证的平台。

命令

您可以使用 Command API 添加可在扩展程序中触发操作的键盘快捷键,例如,用于打开浏览器操作或向扩展程序发送命令的操作。

contentSettings

您可以使用 chrome.contentSettings API 更改相关设置,以控制网站是否可以使用 Cookie、JavaScript 和插件等功能。从更笼统的角度来说,内容设置允许您按网站(而非全局)自定义 Chrome 的行为。

contextMenus

使用 chrome.contextMenus API 向 Google Chrome 的上下文菜单中添加项。您可以选择从右键菜单中添加的对象类型,例如图片、超链接和页面。

Cookie

使用 chrome.cookies API 查询和修改 Cookie,并在 Cookie 发生更改时收到通知。

debugger

chrome.debugger API 可用作 Chrome 远程调试协议的替代传输服务。使用 chrome.debugger 附加到一个或多个标签页,以便对网络交互进行插桩、调试 JavaScript、转变 DOM 和 CSS 等。使用 Debuggee 属性 tabId 可定位具有 sendCommand 的标签页,并通过 tabIdonEvent 回调对事件进行路由。

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 检索由开发者工具在“Network”面板中显示的网络请求的相关信息。

devtools.panels

使用 chrome.devtools.panels API 将您的扩展程序集成到开发者工具窗口界面中:创建自己的面板、访问现有面板以及添加边栏。

devtools.recorder
Chrome 105 及更高版本

使用 chrome.devtools.recorder API 自定义开发者工具中的“Recorder”面板。

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 身份验证、网络访问或其他扩展程序通过 chrome.platformKeys。

事件

chrome.events 命名空间包含一些常用类型,API 会使用这些类型来调度事件,以便在发生值得注意的事情时通知您。

扩展程序

chrome.extension API 包含可供任何扩展程序页面使用的实用程序。它支持在扩展程序与其内容脚本之间或扩展程序之间交换消息,详见消息传递

extensionTypes

chrome.extensionTypes API 包含 Chrome 扩展程序的类型声明。

fileBrowserHandler
仅限 ChromeOS 仅限前台

使用 chrome.fileBrowserHandler API 扩展 Chrome 操作系统的文件浏览器。例如,您可以使用此 API 让用户向您的网站上传文件。

fileSystemProvider
仅限 ChromeOS

您可以使用 chrome.fileSystemProvider API 创建可通过 Chrome 操作系统的文件管理器访问的文件系统。

fontSettings

使用 chrome.fontSettings API 管理 Chrome 的字体设置。

gcm

使用 chrome.gcm 可让应用和扩展程序通过 Firebase Cloud Messaging (FCM) 发送和接收消息。

历史

使用 chrome.history API 与浏览器的已访问网页的记录进行交互。您可以在浏览器的历史记录中添加、移除和查询网址。如需使用您自己的版本替换历史记录页面,请参阅覆盖网页

国际化

使用 chrome.i18n 基础架构在您的整个应用或扩展程序中实现国际化。

身份

使用 chrome.identity API 获取 OAuth2 访问令牌。

空闲

使用 chrome.idle API 检测机器的空闲状态何时发生变化。

input.ime
仅限 ChromeOS

使用 chrome.input.ime API 为 ChromeOS 实现自定义 IME。这样一来,您的扩展程序就可以处理按键、设置构图和管理候选窗口。

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 可让您向 Chrome 浏览器的地址栏(也称为多功能框)注册关键字。

pageCapture

使用 chrome.pageCapture API 可将标签页保存为 MHTML。

权限

使用 chrome.permissions API 在运行时(而不是安装时)请求声明的可选权限,以便用户了解需要相关权限的原因,并仅授予必要的权限。

platformKeys
Chrome 45 及更高版本 仅限 ChromeOS

使用 chrome.platformKeys API 访问由平台管理的客户端证书。如果用户或政策授予了此权限,扩展程序便可在其自定义身份验证协议中使用此类证书。例如,这允许在第三方 VPN 中使用平台管理的证书(请参阅 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 依赖 ChromeSetting 类型 API 的原型来获取和设置 Chrome 的配置。

进程
开发者版

使用 chrome.processes API 与浏览器的进程进行交互。

proxy

使用 chrome.proxy API 管理 Chrome 的代理设置。此 API 依赖 ChromeSetting 类型 API 原型来获取和设置代理配置。

readingList
Chrome 120 及更高版本 MV3 及更高版本

使用 chrome.readingList API 读取和修改阅读列表中的项。

runtime

使用 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
Chrome 125 及更高版本 仅限 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)。另请参阅相关的 ttsEngine API,该 API 允许扩展程序实现语音引擎。

ttsEngine

使用 chrome.ttsEngine API 通过扩展程序实现文字转语音(TTS) 引擎。如果您的扩展程序使用此 API 注册,那么当任何扩展程序或 Chrome 应用使用 tts API 生成语音时,该扩展程序将收到包含待说出的话语和其他参数的事件。然后,您的扩展程序可以使用任何可用的网络技术来合成并输出语音,并将事件发送回调用函数以报告状态。

类型

chrome.types API 包含 Chrome 的类型声明。

userScripts
Chrome 120 及更高版本 MV3 及更高版本

使用 userScripts API 在用户脚本上下文中执行用户脚本。

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 在浏览器中创建、修改和重新排列窗口。