API 参考

大多数扩展程序都需要使用一个或多个 Chrome 扩展程序 API 才能正常运行。本 API 参考文档介绍了可在扩展程序中使用的 API,并演示了使用场景示例。

常见的 Extensions API 功能

Extensions API 包含一个命名空间,该命名空间包含用于执行扩展工作的方法和属性,通常(但并不总是)manifest.json 文件的清单字段。例如,chrome.action 命名空间需要在清单中添加 "action" 对象。许多 API 还需要在清单中指定权限

除非另有说明,否则扩展程序 API 中的方法都是异步的。异步方法会立即返回,无需等待调用它们的操作完成。使用 promise 获取这些方法的结果。如需了解详情,请参阅异步方法

Chrome Extension 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,并在发生变化时收到通知。

debugger

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

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 身份验证、网络访问,或供其他扩展程序通过 {@link platformKeys chrome.platformKeys} 使用。

事件

chrome.events 命名空间包含一些常用类型,API 使用这些类型来调度事件,以便在发生有趣事件时通知您。

扩展程序

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

extensionTypes

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

fileBrowserHandler
仅限 ChromeOS 仅限前台

使用 chrome.fileBrowserHandler API 扩展 ChromeOS 文件浏览器。例如,您可以使用此 API 让用户能够将文件上传到您的网站。

fileSystemProvider
仅限 ChromeOS

使用 chrome.fileSystemProvider API 创建可通过 ChromeOS 上的文件管理器访问的文件系统。

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

使用 chrome.input.ime API 为 Chrome 操作系统实现自定义 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 可让您在 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 依赖于 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 查询存储设备信息,并在连接和分离可移动存储设备时接收通知。

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 在用户脚本上下文中执行用户脚本。

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