返回知识库

浏览器插件 · 扩展的组成

内容脚本Content Script

内容脚本是扩展注入到网页里运行的部分,能读能改页面;它只在匹配的网址出现,重载扩展后要刷新网页,对方改版也可能让它失效。

让比价标签出现在别人的商品页上

比价助手的内容脚本已经在商品页里运行。切到别的网站、模拟 AI 改完代码后重载扩展、刷新网页、模拟网站改版,看商品页上的标签怎么变。

content_scripts.matches: "https://shop.example/item/*"当前页匹配 → 注入
shop.example · 别人的网站

降噪耳机 Pro

¥299 ← 内容脚本读到这里

v1 · 历史最低 ¥259

内容脚本在商品页里读到了价格,并在旁边插入了标签。下一步:切到 news.example 看看,或模拟「AI 改完代码后重新加载扩展」。

知识点:住在别人网页里的那部分

标签的出现、失效和降级,都能在下面找到名字。

  • 内容脚本被注入到网页里运行,能读取页面内容,也能往页面里插入按钮、标签。
  • 只有 matches 匹配的网址才会注入;不匹配的网站上,它根本不存在。
  • 重新加载扩展后,已经打开的网页还跑着旧脚本,要刷新网页才会换成新版。
  • 它按对方网页的结构找元素,网站改版就可能找不到,要有可见的降级提示。
  • 它和页面自己的代码互相隔离;要存数据、调接口时,通过消息交给后台脚本。

什么时候需要它、怎么验收

要在网页上「看到」扩展的东西,就要内容脚本。

  • 适合:给网页加按钮、高亮文字、读取页面上的价格或标题、自动填表。
  • 不需要:只在弹出页里显示信息、只处理浏览器标签页本身。
  • 症状对照:「装了扩展但网页上没反应」先查 matches 和有没有刷新网页。
  1. 告诉 AI 具体在哪些网址生效,让 matches 只覆盖它们。
  2. 要求找不到目标元素时显示降级提示,不要静默失败。
  3. 每次重新加载扩展后,先刷新目标网页再验收。
  4. 没反应时打开该网页的开发者工具控制台,把报错贴给 AI。

正反例:同一个比价标签

功能一样,差别在网站改版那天。

正例找不到价格时显示「没找到价格」

用户知道扩展还在、只是这页没认出来;你截图发给 AI,几分钟改好。

反例找不到就报错,标签直接消失

用户只觉得扩展坏了,你也不知道是哪个网站、哪一页出的问题。

快速自测

AI 说已经修好了内容脚本,你在扩展页点了重新加载,但商品页上还是旧样子。先做什么?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。

看看真实的项目蓝图里,内容脚本是怎么被用上的。