Chrome 插件开发学习

You,7 min read

Chrome 插件开发学习

https://developer.chrome.com/docs/extensions/mv3/ (opens in a new tab)

基本概念

https://developer.chrome.com/docs/extensions/mv3/getstarted/extensions-101/ (opens in a new tab)

插件能干嘛

 Chrome Web Store (opens in a new tab)

Web 技术

三剑客

扩展 API

扩展程序可以使用浏览器提供的所有JavaScript APIs。扩展程序之所以比网络应用程序更强大,是因为它们可以使用Chrome的API。

以下是扩展程序可以做什么的几个例子

API 文档详见 Extension development overview (opens in a new tab)

扩展文件

扩展程序包含不同的文件,这取决于所提供的功能。以下是一些最经常使用的文件:

manifest.json

扩展的清单是唯一需要的文件,必须有一个特定的文件名: manifest.json 。 它还必须位于扩展的根目录中。清单记录了重要的元数据,定义了资源,声明了权限,并确定了哪些文件要在后台和页面上运行

service worker

扩展服务工作者处理并监听浏览器事件。有许多类型的事件,如导航到一个新页面、删除书签或关闭标签。 它可以使用所有的Chrome API,但它不能与网页内容直接互动;那是内容脚本的工作。

content scripts

内容脚本在网页的背景下执行Javascript。 它们还可以读取和修改它们所注入的网页的DOM。 内容脚本只能使用Chrome API的一个子集,但可以通过与扩展服务工作者交换信息来间接访问其余内容。

popup & other pages

一个扩展可以包括各种HTML文件,如弹出窗口、选项页和其他HTML页面。 所有这些页面都可以访问Chrome的API

访问 Extensions Architecture (opens in a new tab) 和 Designing the user interface (opens in a new tab) 去深入了解开发

开发你的插件

尽管Web应用程序和扩展共享许多相同的技术,但扩展的开发经验是不同的。查看Development Basics (opens in a new tab),创建一个 "你好,扩展 "的例子,熟悉扩展开发的工作流程。

设计你的插件功能

当您开始设计您的扩展并选择支持哪些功能时,请确保它能满足一个单一的目的 (opens in a new tab),而且是狭义的,易于理解的。这将使你的扩展程序能够通过Chrome网络商店发布

💡 "单一目的 "到底是什么意思?

"单一目的 "可以指扩展的两个方面中的一个:

无论扩展的目的是什么,扩展所提供的体验必须尊重用户的其他设置和偏好。

更多细节见 扩展程序质量指南 (opens in a new tab)

分发你的插件

你可以在Chrome网络商店建立一个开发者账户,以托管和发布你的扩展。请记住,扩展程序必须遵守开发者计划的政策。

请参阅 在Chrome网络商店中发布 (opens in a new tab) 了解如何发布您的扩展程序。

如果我只想在我的组织内分发扩展程序怎么办?

一些组织使用企业政策在其用户的设备上安装扩展程序。这些扩展程序可以从Chrome网络商店中获取,也可以托管在企业的网络服务器上。请在 企业发布选项 (opens in a new tab) 中了解这两种情况。

🚀 准备好开始建造了吗?

选择以下任何一个教程,开始你的扩展学习之旅

ExtensionWhat you will learn
Reading time (opens in a new tab)在每个页面上自动插入一个元素
Focus Mode (opens in a new tab)点击扩展动作后,要在当前页面上运行代码
Tabs Manager (opens in a new tab)要创建一个管理浏览器标签的弹出窗口

作为奖励,这些教程是为了改善您在阅读Chrome扩展和Chrome网络商店文档时的体验:

这三个好像都不是很适合 我需要一个后台运作的

开发

调试

popup 页面

和开发web页面差不多 没啥区别

content.js 内容脚本

devtool - > sources -> content scripts (很多插件的内容脚本)

MMYZIr

background.js 后台脚本

chrome://extensions/ -> 插件卡片 -> service worker

U9CS8p

发布

Chrome 插件示例 (opens in a new tab)

FAQ

default_popupchrome.action.onClicked 在一定程度上是互斥的

换句话说,如果你希望在用户点击扩展图标时执行某些代码,你应该选择使用 chrome.action.onClicked。但是,如果你希望展示一些HTML内容,你应该使用 default_popup

fyHGAp

使用 storage 需要注册权限不然调用API会报错

2026 © Lizhenyui.