chrome-extension
1
总安装量
1
周安装量
#52924
全站排名
安装命令
npx skills add https://github.com/fanthus/agent-skills --skill chrome-extension
Agent 安装分布
amp
1
opencode
1
kimi-cli
1
codex
1
claude-code
1
Skill 文档
Chrome æä»¶å¼å
éç¨èå´
æ¬ Skill ç¨äºå¨ Cursor ä¸å¶ä½æä¿®æ¹ Chrome æ©å±ï¼Manifest V3ï¼ãæ¶å manifest ç»æãcontent scriptãbackgroundãpopupãæé䏿¶æ¯éä¿¡æ¶ææ¤æ§è¡ã
æ©å±ç»æï¼Manifest V3ï¼
å¿ é¡»ä½¿ç¨ Manifest V3ï¼V2 å·²å¼ç¨ã
æå° manifest.json 示ä¾ï¼
{
"manifest_version": 3,
"name": "æ©å±åç§°",
"version": "1.0.0",
"description": "æ©å±æè¿°",
"permissions": [],
"optional_permissions": [],
"host_permissions": []
}
常ç¨å ¥å£ä¸å段ï¼
| å ¥å£ | ç¨é |
|---|---|
background.service_worker |
常驻é»è¾ï¼äºä»¶ã宿¶ãè·¨æ ç¾åè°ï¼ |
action.default_popup |
ç¹å»æ©å±å¾æ æ¶çå¼¹çª HTML |
content_scripts |
æ³¨å ¥å°å¹é ç½é¡µç JS/CSS |
options_page |
设置页 |
æé
- permissionsï¼å£°æå³å®è£
æ¶è¯·æ±ï¼å¦
storageãtabsãscriptingï¼ã - host_permissionsï¼å¯è®¿é®ç URLï¼å¦
https://*/*ã<all_urls>ï¼ã - optional_permissionsï¼è¿è¡æ¶éè¿
chrome.permissions.request()å请æ±ã
ä»
声æå®é
éè¦çæéï¼æææéï¼å¦ <all_urls>ï¼è¦è½åç¨æ·è§£éç¨éã
Backgroundï¼Service Workerï¼
- æä»¶å¨ manifest ä¸éè¿
background.service_workeræå®ï¼åæä»¶ï¼ES modules é设"type": "module"ã - æ DOMãæ
windowï¼ç¨chrome.*API ä¸chrome.runtimeæ¶æ¯ã - 空é²ä¸æ®µæ¶é´ä¼è¢«ç»æ¢ï¼ä¸è½ä¾èµå
¨å±åéé¿æä¿åç¶æï¼æä¹
åç¨
chrome.storageã
常ç¨ï¼çå¬ chrome.runtime.onInstalledãchrome.tabs.onUpdatedãchrome.alarmsï¼ä»¥åç¨ chrome.runtime.sendMessage / chrome.tabs.sendMessage ä¸ popup/content script éä¿¡ã
Content Script
- å¨
content_scriptséæå®matchesï¼URL 模å¼ï¼ãjsãcssã - è¿è¡å¨é离ç JS ç¯å¢ï¼ä¸é¡µé¢èæ¬ä¸å
±äº«å
¨å±ï¼å¯è®¿é® DOMï¼ä¸è½ç´æ¥è®¿é®é¡µé¢ç
windowåéã - ä¸ background éä¿¡ï¼
chrome.runtime.sendMessageï¼æ¶ï¼chrome.runtime.onMessageã - éæä½é¡µé¢èæ¬ä¸ä¸ææ¶ï¼éè¿æ³¨å
¥
<script>å°é¡µé¢åé åwindow.postMessageä¸ content script äº¤æ¢æ°æ®ã
Popup
- æ®é HTML + JS 页é¢ï¼çå½å¨æçæï¼å ³éå³éæ¯ã
- éè¦æ°æ®æ¶ä»
chrome.storageè¯»ï¼æå background åæ¶æ¯è·åã - ä¸è¦å¨æ¤åé¿æ¶é´å¼æ¥åå§åï¼æå¼åå¨ background åå¤å¥½æ°æ®æ´ç¨³å¦¥ã
æ¶æ¯éä¿¡
- popup/content â backgroundï¼
chrome.runtime.sendMessage(message, response => {...})ã - background â contentï¼
chrome.tabs.sendMessage(tabId, message, response => {...})ï¼éå æ content script æ³¨å ¥å°è¯¥ tabã - æ¥æ¶ç«¯ï¼
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { ...; return true; })ã弿¥å夿¶å¿ é¡»return trueå¹¶å¨åè°éè°ç¨sendResponseã
åå¨
- chrome.storage.localï¼æ¬å°ï¼å®¹éè¾å¤§ï¼éåæ©å±ç§ææ°æ®ã
- chrome.storage.syncï¼è·¨è®¾å¤åæ¥ï¼æé é¢éå¶ã
- chrome.storage.sessionï¼MV3ï¼ï¼ä» å½åä¼è¯ï¼å ³æµè§å¨å³æ¸ 空ã
读ååä¸ºå¼æ¥ï¼chrome.storage.local.get/set(...)ã
å¸¸ç¨æ¸ åçæ®µ
带 background + popup + content scriptï¼
{
"manifest_version": 3,
"name": "ç¤ºä¾æ©å±",
"version": "1.0.0",
"permissions": ["storage", "activeTab"],
"host_permissions": ["https://*/*"],
"background": {
"service_worker": "background.js"
},
"action": {
"default_popup": "popup.html",
"default_title": "æå¼é¢æ¿"
},
"content_scripts": [
{
"matches": ["https://example.com/*"],
"js": ["content.js"],
"css": ["content.css"]
}
]
}
å¼åä¸è°è¯
- 代ç ä¿®æ¹åå°
chrome://extensionsç¹å»ãéæ°å è½½ãã - Backgroundï¼æ©å±é¡µãService Workerã龿¥æå¼ DevToolsã
- Content scriptï¼å¨å¯¹åºç½é¡µç DevTools éé该æ©å±ç context æ¥çã
- Popupï¼å³é®æ©å±å¾æ âãæ£æ¥å¼¹åºå 容ãã
注æäºé¡¹
- MV3 ä¸ä¸åæ persistent background pageï¼é¿æ¶é´é»è¾ç¨
chrome.alarmsæç±ç¨æ·æä½è§¦åã - 注å
¥èæ¬ä¼å
ç¨
chrome.scripting.executeScriptï¼éscriptingæéï¼åå¨ææ³¨å ¥ï¼å¿ è¦æ¶åé åcontent_scriptsã - 䏿¶ Chrome ååºé满足 Chrome ç½ä¸åºç¨åºè®¡åæ¿çï¼æéä¸éç§è¯´æè¦æ¸ æ°ã