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

也欢迎各位大佬参与

相关推荐
不好听6134 分钟前
React 核心概念:JSX、组件与数据驱动
前端·react.js
触底反弹6 分钟前
🔥 React 零基础入门(中):500 行屎山代码到组件化的蜕变
前端·javascript·react.js
不好听6136 分钟前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
GuWenyue7 分钟前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue7 分钟前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
小林ixn1 小时前
从 onclick 到 React 合成事件,再到完整应用逻辑:一次前端架构的深度剖析
前端·react.js·前端框架
Csvn2 小时前
🧩「找不到模块」排查全记录——Monorepo 下 TypeScript 路径别名的 5 种「不通」与根治方案
前端
腻害兔2 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
冬奇Lab2 小时前
每日一个开源项目(第164篇):毕昇(BISHENG)- 面向企业的开源 LLM DevOps 平台
人工智能·开源·agent
CodexDave2 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡