「web extensions🛠️」有关浏览器扩展,开发前你需要知道一些......

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...

也欢迎各位大佬参与

相关推荐
环信12 小时前
2026年开发者选择即时通讯厂商应注意的几点
前端
卷帘依旧12 小时前
Generator 全面解析 + async/await 深度对比
前端·javascript
weixin_4713830312 小时前
统一缩放单位基础(px、em、rem)
开发语言·javascript·ecmascript
yqcoder12 小时前
数据劫持的双雄:深入解析 Object.defineProperty 与 Proxy
开发语言·前端·javascript
lichenyang45312 小时前
鸿蒙聊天 Demo 练习 03:接入 Next.js 后端接口,实现真机前后端联调
前端
小三金13 小时前
EXPO+RN echarts图表库,以及如何使用
前端·javascript·react.js
幽络源小助理13 小时前
全新UI 阅后即焚V2正式版系统源码_全开源_安全加密传输
安全·ui·开源·php源码
ZFSS13 小时前
Midjourney Shorten API 的集成与使用
java·前端·数据库·人工智能·ai·midjourney·ai编程
lularible13 小时前
从沙子到车辙(3.5):存储层次
开源·嵌入式·汽车电子
lularible13 小时前
从沙子到车辙(3.4):流水线——指令级并行的艺术
开源·嵌入式·汽车电子