admin 管理员组

文章数量: 1184232

一些前置的知识(Chrome 为例)

1. 什么是浏览器扩展 (Browser Extension)?

  • 定义: 一种使用 Web 技术(HTML, CSS, JavaScript)构建的小型软件程序,用于修改和增强浏览器的功能或用户体验。

  • 类比: 就像给浏览器安装的“小程序”或“插件”,可以实现广告拦截、密码管理、翻译、笔记、开发者工具等功能。

  • 技术本质: 一个包含特定文件和结构的文件夹(最终打包成 .crx 或 .zip 文件)。

2. 核心文件:manifest.json

  • 作用: 扩展的“身份证”和“配置清单”。必不可少

  • 内容: 一个 JSON 文件,告诉浏览器关于扩展的最基本信息以及它需要哪些权限和能力。

  • 关键配置项示例:

    • manifest_version: (必填) 使用的清单版本 (当前主流是 3, 旧版是 2)。

    • name: (必填) 扩展名称。

    • version: (必填) 扩展版本号。

    • description: 扩展描述。

    • icons: 扩展图标。

    • permissions: (重要) 扩展需要请求的浏览器 API 权限 (如 "storage""tabs""scripting""activeTab""<all_urls>" 等)。用户安装时会看到这些权限请求。

    • background: (重要) 配置后台脚本 (Service Worker)。

    • content_scripts: (重要) 配置内容脚本及其注入规则。

    • action: 配置浏览器工具栏按钮(点击弹出 Popup 页面)。

    • options_page: 配置扩展的设置选项页面。

    • host_permissions: (MV3) 配置内容脚本可以注入的网站匹配规则。

3. 核心组成部分与架构 (关键!)

浏览器扩展由多个相互隔离但又需要协作的部分组成。理解它们的生命周期运行环境通信方式是解决状态同步问题的关键。

(1) 后台脚本 (Background Script - Service Worker in MV3)
  • 角色: 相对来说是扩展的后端。

  • 环境: 运行在独立于任何网页的浏览器环境中。

  • 生命周期 (MV3):

    • 基于事件驱动。

    • 平时处于休眠状态(不占用内存/CPU)。

    • 当它监听的事件发生(如收到消息、定时器触发、浏览器事件如标签页更新/安装/点击通知等)时被唤醒执行。

    • 执行完成后,经过短暂空闲期(约 30 秒)后再次休眠。

    • 无法直接

本文标签: 界面 浏览器 状态 数据同步 项目