当前位置: 首页 > news >正文

Chrome 扩展程序 MV3 架构组件概览

Chrome 扩展程序的核心组成部分与上下文类型

界面类型生命周期上下文与作用域
Popup(扩展弹窗)点击扩展工具栏图标时创建渲染;失去焦点、点击外部区域、切换标签 / 关闭窗口时自动销毁,JS 环境完全终止,运行状态不持久独立 HTML 页面,属于扩展页面上下文;拥有独立 DOM 与 JS 执行环境,可直接调用绝大多数 Chrome 扩展 API;需通过消息与 Service Worker 通信
Options Page(选项页)打开选项页时创建;对应标签页关闭时销毁。支持两种形态:内嵌到扩展管理页、独立标签页打开独立 HTML 页面,属于扩展页面上下文;API 权限与 Popup 一致,专门用于扩展配置与设置持久化
Side Panel(侧边栏面板)用户唤起侧边栏时创建实例;关闭侧边栏、切换到不匹配标签页时销毁。支持「全局共用」和「按标签页独立实例」两种模式独立 HTML 页面,属于扩展页面上下文;常驻浏览器侧边栏,可与当前页 Content Script 联动,API 权限与 Popup 一致
Chrome URL Override(原生页面覆盖)对应系统页面打开时创建;标签页关闭时销毁。可覆盖三类原生页面:newtab(新标签页)、bookmarks(书签页)、history(历史页)独立 HTML 页面,属于扩展页面上下文;通过 manifest 配置替换浏览器内置页面,API 权限同普通扩展页面
Content Script 注入 UI随宿主页面加载注入(时机由 run_at 控制);随宿主页面关闭 / 刷新销毁运行在隔离世界(Isolated World),挂载于宿主页面 DOM 内;可读写 DOM 但与页面原生 JS 完全隔离,无法直接访问页面 window;仅能访问少量 Chrome API(runtime、storage、i18n 等),高级能力需与 Service Worker 通信
Service Worker(后台服务工作者)事件驱动模型:扩展安装、事件触发时唤醒;空闲约 30 秒无事件则自动休眠终止;无持久运行状态,全局变量不可靠,持久化必须依赖 storage扩展全局后台上下文,无 DOM 环境;是扩展的逻辑中枢,可调用全部 Chrome 扩展 API;MV3 强制要求,替代了 MV2 的 Background Page
DevTools Panel(开发者工具面板)打开 DevTools 并切换到对应 Tab 时创建;关闭 DevTools 或切换标签页时销毁,每个标签页对应独立实例独立 HTML 页面,运行在DevTools 专属上下文;可调用 chrome.devtools.* 系列 API,需通过消息桥接与页面、后台通信
Extension Window(扩展独立窗口)通过 chrome.windows.create 创建时生成;用户关闭窗口时销毁。支持弹窗、常驻面板、全屏等多种窗口类型独立 HTML 页面,属于扩展页面上下文;脱离标签栏独立存在,常用于悬浮工具、独立应用窗口场景
Omnibox(地址栏关键字)输入扩展注册关键字后激活会话;回车执行、失焦或清空输入后会话结束。本身无独立页面无自定义 UI,下拉建议由地址栏原生渲染;全部逻辑运行在Service Worker 后台上下文
Context Menu(右键菜单)后台注册后持久生效;右键对应区域时浏览器渲染原生菜单;点击菜单项触发后台事件,菜单随右键消失而关闭浏览器原生 UI,无自定义渲染;逻辑处理在Service Worker 后台上下文,可配置作用于页面、选中文本、图片、链接等场景
Command(快捷键命令)扩展安装后全局注册生效;按下快捷键时触发后台事件;全程无 UI 展示无 UI,事件监听在Service Worker 后台上下文;支持浏览器内快捷键与全局系统快捷键两种范围
Badge(图标角标)API 设置后持续生效,主动修改 / 清除或扩展卸载时消失;与扩展工具栏图标共存纯 UI 装饰,渲染在扩展工具栏图标上;由 Service Worker 或扩展页面调用 API 控制,无独立执行逻辑
Notification(系统通知)调用 API 后弹出系统气泡,展示数秒后自动消失,也可被用户点击 / 手动关闭销毁操作系统级原生 UI;由 Service Worker 或扩展页面触发,点击事件回调至后台上下文处理
http://www.jsqmd.com/news/1181477/

相关文章:

  • 为什么Llama-3.2-3B-Instruct_rai_1.7.1_npu_4K是边缘AI计算的理想选择
  • 基于TVA、VLA和世界模型的三大具身智能范式(15)
  • Agent 高可用设计:多实例部署下的状态同步和故障转移策略
  • 2026年新鲜出炉!泰州别墅装修企业排名大揭秘 - 信息热点
  • SPT-AKI存档编辑器终极指南:3分钟掌握离线塔科夫存档修改秘籍 [特殊字符]
  • Unity小游戏广告变现实战:穿山甲SDK集成与收益优化指南
  • 2026俄罗斯物流专线服务商推荐排行 深度评测与选型指南 - 极欧测评
  • AI 工具开发实战(10):开发一个 AI Agent 自动化工作流——让多个 Agent 协作完成复杂任务(完结篇)
  • DeepSeek-R1-Distill-Qwen-1.5B的KV缓存优化:max_length_for_kv_cache配置技巧终极指南
  • 沈阳二手奢侈品回收避坑指南,劳力士梵克雅宝实地探店报价透明 - 逸程奢侈品回收中心
  • 21天精通AntiDupl.NET:从零构建智能图像去重系统的完整指南
  • Carbon Components React核心组件深度解析:DataTable、Button、Form等50+组件使用教程
  • Phi-3-mini-128k-instruct_rai_1.7.1_npu_16K核心功能揭秘:从128K到16K上下文的终极优化
  • 上海高端包包回收避坑实操|持证正规门店 无套路高价回收 - 奢侈品交易观察员
  • 2026年7月上海专业可靠的合同纠纷律师推荐:王静经验丰富资质齐全,诚信可信口碑好 - 十大排行榜推荐
  • 如何通过开源工具实现WeMod高级功能本地化增强
  • 从原生JS到Vue响应式:后端视角下的前端数据绑定与事件处理入门
  • TVA与具身智能融合的内在必然性(17)
  • 新手必看公众号附件添加编辑内容教程,免费工具替代繁琐操作,简单易上手 - 博客万
  • yolov8车流量统计人流量统计目标跟踪算法1 13(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • Phi-4-reasoning-plus-w4a16-tao-symchannel-torchao-v0.17.0性能评测:MMLU、GSM8K基准测试结果分析
  • 【python零基础教程第18讲】GIL全局解释器锁 深度解析
  • 从图片到动态视频:AnyFlow-FAR-Wan2.1-14B-Diffusers的I2V功能完整操作指南 [特殊字符]
  • 黄金回收市场实地探访:从行情波动到门店实测,一份完整的变现参考 - 衡金阁
  • 基于TVA、VLA和世界模型的三大具身智能范式(16)
  • 双非本科也能抓住大模型红利期?Agent开发实战攻略+收藏
  • 2026南京香奈儿服饰回收指南:这些款式竟能高价变现 - 信息热点
  • 2026年7月上海高端高口碑房产律师权威排行榜|陈博扬律师稳居榜首(18621502342) - damaigeo
  • 编译原理:自顶向下分析面临的问题
  • 2026重庆黄金回收:上金所正规网点甄别!免火烧门店估价实操指南 - 名奢变现站