Hi,这里是JustHappy,上手直接开始开发插件?我想你会没有头绪,如果你从未开发过浏览器插件,我想这篇一定对你有帮助,哈哈至少在 vibe coding 的时候可以更好的指挥 AI 去帮助你,放心,我"碎片式写作"篇幅不长,希望给你带来愉快的阅读体验

浏览器扩展是什么?
浏览器扩展是由 Web 技术构建的小程序(HTML、CSS 和 JavaScript),扩展程序可通过自定义界面、监控浏览器事件和修改网页来提升浏览体验。
自 web 技术诞生初始不久,浏览器插件、扩展技术并应运而生,而后 FireFox、Chrome 等浏览器大厂也纷纷下场,并在 2015 年确定了统一的 WebExtensions 标准
在我眼中,浏览器扩展是 web 世界的"外挂",你几乎可以通过它去操纵一切网页;同时它也是良好的应用内容载体,其独特的交互模式在一些场景实有奇效
统一的标准:WebExtensions(2015+)
Mozilla、Google、Microsoft 达成共识,共同确立了 WebExtensions API ,我们之后的开发之路也围绕这个标准,这里先做个"路由",这样以后找文档不至于迷路哈哈
WebExtensions 标准适用的浏览器:
- Mozilla Firefox
- Google Chrome
- Microsoft Edge
- Apple Safari(部分)
比较详尽的内容参照 MDN / chrome 文档 : MDN web Extensions / Chrome web Extension
它是一个完整的应用
虽然我们通过 Web 技术来开发浏览器扩展,但它的形态绝对不是一个单纯的网页中的网页,而更像是一个完整的应用,有自己独立的一套运作体系,这个"应用"大致的构成成分如下

插件是如何操作页面的?
我们往往通过一下两种方式操作页面(其余不推荐),受限于篇幅,这里只简单介绍
1. Content Script:扩展派驻在页面里的"手和眼"
Content Script 就是注入到匹配页面里的脚本,它能:
- 读/改 DOM:
document.querySelector(...)、element.textContent = ... - 监听事件:点击、输入、滚动
- 插入 UI:按钮、浮层、标记、高亮
- 观察变化:
MutationObserver
关键点:它和网页 JS 共享同一个 DOM,但不共享同一个 JS 作用域(隔离世界)。
2. chrome.scripting:把脚本"打到页面里"
chrome.scripting可以把代码"注入到页面"执行 ,但它并不等同于传统意义上"把脚本塞进网页里"
chrome.scripting 是由扩展后台控制的"按需代码注入机制",注入点默认是 Content Script 的隔离世界,而不是网页的 JS 主世界。
典型流程是:
- UI(popup/sidepanel)→ 发消息给 Background
- Background 找到当前 tabId
- Background 用
scripting把脚本/样式注入到该 tab
ok,就到这,且听后续我们展开细说
如果你有兴趣,可以直接尝试我的插件开发模板,持续迭代中.....
使用文档:simonmie.github.io/vue-chrome-...
github : github.com/Simonmie/vu...
也欢迎各位大佬参与