闲社服务运行正常AI智能体自动化平台
c

Chrome扩展指南

技能标识:chrome-extension

Comprehensive guide for building Chrome extensions with Manifest V3. Use this skill whenever the user mentions Chrome extension, browser extension, manifest.json, content script, service worker (in extension context), popup, side panel, chrome.runtime, chrome.tabs, chrome.storage, chrome.scripting, background script, MV3, Manifest V3, or any Chrome extension API. Also trigger when the user wants to inject scripts into web pages, communicate between page and background, bypass CSP from a content

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.2
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

Chrome扩展指南

Chrome 扩展开发 (Manifest V3)

本技能涵盖使用 MV3 构建、调试和发布 Chrome 扩展所需的一切内容。它被组织为一个路由文档:首先阅读此文件以了解架构和决策点,然后加载相关的参考文件以获取实现细节。

参考文件

仅读取与当前任务相关的参考文件。每个文件都是独立的。

文件何时阅读
references/manifest-v3.md设置或修改 manifest.json、配置图标、版本管理
references/service-worker.md
后台逻辑、生命周期、状态持久化、定时器、事件 |
| references/content-scripts.md | 向页面注入代码、隔离/主世界、动态注入、SPA 处理、孤立脚本 |
| references/messaging-rpc.md | 任意上下文间的通信、类型化协议、RPC 层、异步处理器模式 |
| references/ui-surfaces.md | 弹出窗口、选项页面、侧边栏、上下文菜单、命令、通知、多功能框、开发者工具面板 |
| references/storage.md | chrome.storage(本地/同步/会话)、配额限制、响应式模式、框架钩子 |
| references/network-csp.md | 内容脚本的 HTTP 请求、CSP 绕过中继、declarativeNetRequest、离屏文档、CORS |
| references/permissions.md | 必需/可选权限、主机权限、activeTab、运行时请求流程 |
| references/web-accessible-resources.md | 向网页暴露扩展文件、安全影响 |
| references/typescript-build.md | TypeScript 设置、项目结构、构建工具对比、打包 |
| references/publishing.md | Chrome 网上应用商店提交、审核流程、拒绝原因、更新、隐私政策 |
| references/execution-contexts.md | 通信流程图、各上下文能力/限制、选择正确的消息传递方式 |
| references/debugging-mistakes.md | 扩展的开发者工具、测试 SW 终止、常见陷阱、错误模式 |

架构概览

一个 Chrome 扩展最多有 5 个执行上下文,通过消息传递进行通信:

┌──────────────────────────────────────────────────────────┐
│ 扩展进程 │
│ ┌─────────────────┐ ┌───────┐ ┌─────────┐ ┌──────┐ │
│ │ 服务工作者 │ │ 弹出 │ │ 选项 │ │ 侧边 │ │
│ │ (后台) │ │ 窗口 │ │ 页面 │ │ 栏 │ │
│ │ - 无 DOM │ │ 完整 │ │ 完整 │ │ 完整 │ │
│ │ - 临时性 │ │ DOM │ │ DOM │ │ DOM │ │
│ │ - 所有 chrome.* │ │ 所有 │ │ 所有 │ │ 所有 │ │
│ │ API │ │ API │ │ API │ │ API │ │
│ └────────┬─────────┘ └───┬───┘ └────┬────┘ └──┬───┘ │
│ │ chrome.runtime.sendMessage / connect │ │
└───────────┼────────────────┼───────────┼──────────┼──────┘
│ │ │ │
chrome.tabs.sendMessage │ │ │
│ │ │ │
┌───────────┼────────────────┼───────────┼──────────┼──────┐
│ 网页 ▼ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ 内容脚本 │ │ 主世界脚本 │ │
│ │ (隔离世界) │◄──►│ (页面上下文) │ │
│ │ - 共享 DOM │ │ - 共享 DOM │ │
│ │ - 自有 JS 作用域 │ │ - 页面 JS 作用域 │ │
│ │ - chrome.runtime │ │ - 无 chrome.* API│ │
│ │ - chrome.storage │ │ - 完整页面访问 │ │
│ │ - 受 CSP 限制 │ │ - 受 CSP 限制 │ │
│ │ (仅网络) │ │ (完全) │ │
│ └──────────────────┘ └──────────────────┘ │
│ ▲ window.postMessage │
│ │ (通过共享 DOM) │
└──────────────────────────────────────────────────────────┘

通信流程(标记通道)

┌───────────────────────────────────────────────────────────────────────────┐
│ 扩展进程 │
│ │
│ ┌─────────────────┐ chrome.runtime ┌───────┐ ┌─────────┐ ┌──────┐ │
│ │ 服务工作者 │◄─.sendMessage()──│ 弹出 │ │ 选项 │ │ 侧边 │ │
│ │ (后台) │◄─.connect()──────│ 窗口 │ │ 页面 │ │ 栏 │ │
│ │ │ └───────┘ └─────────┘ └──────┘ │
│ │ - 无 DOM │ ┌────────────────────────────────────────────┐ │
│ │ - 临时性 30s │ │ SW 无法主动推送消息到这些页面。 │ │
│ │ - 所有 chrome.* │ │ 使用:端口 (.connect) 或 storage.onChanged │ │
│ └────────┬─────────┘ └────────────────────────────────────────────┘ │
│ │ │
│ chrome.storage.onChanged ◄── 在所有上下文中同时触发 │
│ │
└───────────┼──────────────────────────────────────────────────────────────┘
│ chrome.tabs.sendMessage(tabId, ...) [SW 必须知道 tabId]
│
┌───────────┼──────────────────────────────────────────────────────────────┐
│ 网页 ▼ │
│ ┌──────────────────┐ window.postMessage ┌──────────────────┐ │
│ │ 内容脚本 │◄───────────────────►│ 主世界脚本 │ │
│ │ (隔离世界) │ 自定义 DOM 事件 │ (页面上下文) │ │
│ │ │ │ │ │
│ │ chrome.runtime ───┼── 与 SW 双向通信 │ 无 chrome.* API │ │
│ │ chrome.storage │ │ 完整页面 JS │ │
│ │ 共享 DOM │ │ 共享 DOM │ │
│ │ 页面 CSP (网络) │ │ 页面 CSP (完全) │ │
│ └──────────────────┘ └──────────────────┘ │
└──────────────────────────────────────────────────────────────────────────┘

有关详细流程图(三层桥接、跨扩展、存储广播)以及各上下文的权限、限制和解决方案的详细说明:→ 阅读 references/execution-contexts.md

通信方法一览

方法方向最佳用途
chrome.runtime.sendMessage任意扩展上下文 → SW一次性请求/响应(90% 的情况)
chrome.tabs.sendMessage
SW → 内容脚本(按 tabId) | 向特定标签页推送数据 | | chrome.runtime.connect (端口) | 双向 | 流式传输、进度、SW ↔ 弹出窗口 | | window.postMessage | 同一页面上的世界之间 | 页面 JS ↔ 内容脚本桥接 | | chrome.storage.onChanged | 广播到所有上下文 | 设置同步,无需消息传递 |

→ 包含限制和边界情况的完整矩阵:references/execution-contexts.md → 实现模式、类型化协议、RPC 层:references/messaging-rpc.md

关键架构规则

  1. 1. 服务工作者是临时性的。 它在 30 秒不活动后终止。所有状态必须持久化到 chrome.storage。所有事件监听器必须在顶层同步注册。永远不要将 setTimeout/setInterval 用于超过几秒的操作。→ 阅读 references/service-worker.md
  1. 2. 内容脚本在页面的源中运行。 内容脚本的网络请求受页面的 CSP 和 CORS 限制。要绕过,通过服务工作者中继。→ 阅读 references/network-csp.md
  1. 3. 消息传递是核心。 每个跨

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 chrome-extension-1776009063 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 chrome-extension-1776009063 技能

通过命令行安装

skillhub install chrome-extension-1776009063

下载

⬇ 下载 chrome-extension v1.0.2(免费)

文件大小: 55.76 KB | 发布时间: 2026-4-13 09:42

v1.0.2 最新 2026-4-13 09:42
Version 1.0.2

- Updated metadata version to 1.0.2.
- Added AskUserQuestion to allowed tools.
- Minor formatting fixes in the reference table and documentation.
- No functional or structural changes to the skill’s content or routing logic.
返回顶部