控制浏览器
借助 Chrome 的扩展程序 API,您可以改变浏览器的工作方式。
扩展开发者工具
开发者工具扩展程序可通过添加到扩展程序中的开发者工具页面访问开发者工具专用扩展程序 API,从而向 Chrome 开发者工具中添加功能。您也可以使用
chrome.debugger
API 来调用 Chrome 的远程调试协议。附加到一个或多个标签页,以插桩网络交互、调试 JavaScript、更改 DOM 等。
显示通知
借助
chrome.notifications
API,您可以使用模板创建通知,并在用户的系统任务栏中向用户显示这些通知。
管理历史记录
您可以使用
chrome.history
API 与浏览器的已访问网页记录进行交互,并使用 chrome.browsingData
API 管理其他浏览数据。使用 chrome.topSites
访问最常访问的网站。
控制标签页和窗口
添加键盘快捷键
使用
chrome.commands
API 添加可在扩展程序中触发操作的键盘快捷键。例如,您可以添加用于打开浏览器操作的快捷方式,或者向扩展程序发送命令。
对用户进行身份验证
使用
chrome.identity
API 获取 OAuth 2.0 访问令牌。
管理扩展程序
chrome.management
API 提供了管理已安装和正在运行的扩展程序列表的方法。它尤其适用于会替换内置“新标签页”页面的扩展程序。
提供建议
借助
chrome.omnibox
API,您可以在 Google Chrome 的多功能框(地址栏)中注册关键字。
更新 Chrome 设置
使用
chrome.privacy
API 可以控制使用 Chrome 中可能会影响用户隐私的功能。另请参阅 chrome.proxy
API 以管理 Chrome 的代理设置。
管理下载内容
使用
chrome.downloads
API,以编程方式启动、监控、操纵和搜索下载内容。
使用书签和阅读清单
使用
chrome.bookmarks
API 和 chrome.readingList
API 来创建、整理和以其他方式操作这些列表。
控制网络
动态更改网页的内容和行为。您可以通过注入脚本、拦截网络请求以及使用 Web API 与网页进行交互,来控制和修改 Web。
注入 JavaScript 和 CSS
内容脚本是在网页环境中运行的文件。它们使用标准文档对象模型 (DOM) 读取浏览器所访问网页的详情、更改这些网页,并将信息传递给其父级扩展程序。
访问活动标签页
"activeTab"
权限可让扩展程序在用户调用该扩展程序时(例如通过点击其操作)临时访问当前处于活动状态的标签页。用户访问该标签页时,对标签页的访问权限会一直有效;当用户离开页面或关闭标签页时,访问权限便会撤消。
控制网络请求
录音和屏幕截图
修改网站设置
使用
chrome.contentSettings
API 可以控制网站是否可以使用 Cookie、JavaScript 和插件等功能。从更笼统的角度来说,内容设置可让您按网站(而非全局)自定义 Chrome 的行为。
核心概念
使用 Web 平台和扩展 API,您可以通过组合不同的界面组件和扩展平台功能来构建更复杂的功能。
Service Worker
扩展 Service Worker (service-worker.js) 是一种基于事件的脚本,浏览器在后台运行。它通常用于处理数据、协调扩展程序不同部分中的任务,以及用作扩展程序的事件管理器。
权限
了解权限:其运作方式,以及在不需要时避免请求权限的时机。
内容过滤
有多种方法可以在 Chrome 扩展程序中实现内容和网络过滤。了解扩展程序可以使用的内容过滤功能,以及 Chrome 扩展程序可以使用的不同过滤方法、技术和 API。
消息传递
很多时候,内容脚本或其他扩展页面都需要向扩展 Service Worker 发送或接收信息。在这些情况下,任一端都可以监听另一端发送的消息,并在同一通道上做出响应。
原生消息传递
启用扩展程序即可与原生应用交换消息。
避免远程托管代码
在 Manifest V3 中,扩展程序需要在扩展程序本身内捆绑使用的所有代码。有多种策略可以实现这一点。
存储
Chrome 扩展程序有一个专门的 Storage API,适用于所有扩展程序组件。它包含四个针对特定用例的独立存储区域,以及一个用于跟踪每次数据更新的事件监听器。
屏幕外文档
Service Worker 没有 DOM 访问权限。借助 Offscreen API,此扩展程序可以在隐藏的文档中使用 DOM API,而不会因打开新窗口或标签页而中断用户体验。
跨源隔离
通过跨域隔离,网页可以使用
SharedArrayBuffer
等强大的功能。扩展程序可以通过为 "cross_origin_embedder_policy"
和 "cross_origin_opener_policy"
清单键指定适当的值来选择启用跨域隔离。