選項
首頁首頁 Skill 瀏覽器自動化 chrome-extensions

遵循 Manifest V3 的最佳實踐來構建併發布 Chrome 擴充套件程式。每當使用者需要建立、修改、除錯或瞭解 Chrome 瀏覽器擴充套件、外掛,或是任何與 Chrome 擴充套件 API 相關的內容時,均可運用此項技能。在出現以下關鍵詞時觸發該功能:‘Chrome extension’、‘browser extension’、‘manifest.json’、‘content script’、(在瀏覽器上下文中的)‘service worker’、(在 Chrome 擴充套件上下文中的)‘popup’、‘side panel’、‘chrome.* API’、‘declarativeNetRequest’、‘omnibox’、(在擴充套件中的)‘context menu’。

...展開全部
10
更新時間 2026-08-26

關於 Chrome 擴充套件

本指南介紹如何使用 Manifest V3 構建符合生產標準的 Chrome 擴充套件,並將其釋出到 Chrome Web 商店。無論是在建立、修改、除錯 Chrome 瀏覽器擴充套件及相關 chrome.* API,還是理解內容指令碼、服務工作執行緒、彈出視窗、側邊面板、宣告式 NetRequest、搜尋框、上下文選單及使用者指令碼時,亦或是處理許可權說明與隱私政策等與 Web 商店釋出相關的任務,都需要參考本指南。

在構建部分,一系列強制性的規則被列出,旨在解決擴充套件出錯的最常見原因。相關示例包括:僅引用實際存在的圖示檔案(或完全不使用圖示)、明確指定開啟側邊面板的觸發條件(僅提供 default_path 無法實現自動開啟)、由於擴充套件的 CSP 策略限制了 eval 和內聯指令碼的執行,因此只能在沙箱化的 iframe 中執行程式碼、在讀取 tab.url 之前先宣告對標籤頁的許可權、始終使用 async/await 代替 .then() 鏈式呼叫、在內容指令碼中批次處理 DOM 操作以避免阻塞主執行緒,以及由於服務工作執行緒為臨時程序,切勿將其變數中儲存狀態(應使用 chrome.storage 進行持久化儲存,或透過 chrome.alarms 替代 setTimeout)。此外,還有規則涉及透過清單金鑰為 chrome.identity OAuth 確保擴充套件 ID 的穩定性、在上下文選單操作後向使用者反饋、在服務工作執行緒、彈出視窗及側邊面板中統一使用 Extension-Available LanguageModel(Prompt API),以及在使用 chrome.action 之前必須在清單中指定動作金鑰。

當你希望開發的擴充套件首次使用即可正常執行並透過稽覈,而非花費時間除錯 Manifest V3 中那些細微的問題時,就可以參考本指南。每條規則都會對比出錯程式碼與正確程式碼,並指向對應的詳細參考文件(涵蓋圖示、側邊面板、CSP 沙箱、標籤頁管理、內容指令碼、服務工作執行緒、身份認證、上下文選單以及 Prompt API 等主題)。指南的另一部分則講解如何將擴充套件釋出到 Chrome Web 商店,內容包括準備擴充套件包、應對稽覈拒絕、撰寫許可權說明以及起草隱私政策,因此從首次構建到上架商店的整個生命週期中都能發揮作用。

常見問題

何時應該使用這項技能?

在建立、修改、除錯 Chrome 擴充套件及相關 Chrome 擴充套件 API,或是準備將擴充套件釋出到 Chrome Web 商店時都需要使用,其中包括撰寫許可權說明和隱私政策的相關工作。

為什麼在清單中定義了側邊面板卻無法開啟?

僅定義 side_panel.default_path 並不能讓側邊面板自動開啟;必須透過點選操作或彈出視窗按鈕新增觸發邏輯,例如呼叫 chrome.sidePanel.open(),或者設定 openPanelOnActionClick 引數。

為什麼我的擴充套件狀態會丟失?

服務工作執行緒屬於臨時程序,大約 30 秒無操作後就會終止,因此儲存在變數中的狀態會丟失;應使用 chrome.storage 進行持久化儲存,並在每次事件發生時讀取資料,同時用 chrome.alarms 替代 setTimeout/setInterval。

鑑於擴充套件的 CSP 策略,如何執行動態程式碼?

擴充套件的 CSP 策略會阻止 eval、new Function 以及內聯指令碼的執行,因此只能透過清單中配置的沙箱環境加上 postMessage 機制,在沙箱化的 iframe 中執行程式碼,或者透過生成獨立源站的 Blob URL 或 srcdoc 方式來執行程式碼。

本指南是否涵蓋 Prompt API?

是的。LanguageModel API 可以在服務工作執行緒、彈出視窗及側邊面板中正常使用,無需額外許可權,而且擴充套件還能使用 LanguageModel.params() 方法,而該方法在普通網頁環境中是不可用的。

所有檔案

23 個檔案 references/extensions/context-menus.md 1.8 KB 檢視 references/extensions/auth-identity.md 3.9 KB 檢視 references/extensions/declarative-net-request.md 2.7 KB 檢視 references/extensions/message-passing.md 4.1 KB 檢視 references/extensions/api-calling.md 2.1 KB 檢視 references/extensions/csp-sandbox.md 4.7 KB 檢視 references/extensions/media-capture.md 4.7 KB 檢視 references/extensions/prompt-api.md 3.7 KB 檢視 references/extensions/tab-management.md 3.7 KB 檢視 SKILL.md 25.5 KB 檢視 references/extensions/content-scripts.md 3.4 KB 檢視 references/extensions/devtools.md 2.8 KB 檢視 references/extensions/omnibox.md 1.8 KB 檢視 references/extensions/side-panel.md 4.4 KB 檢視 references/webstore/chromewebstore-template.md 5.6 KB 檢視 references/webstore/review-checklist.md 6.8 KB 檢視 references/extensions/icons.md 2.7 KB 檢視 references/extensions/popup-ui.md 2.3 KB 檢視 references/extensions/storage.md 1.9 KB 檢視 references/webstore/store-listing.md 7.8 KB 檢視 references/extensions/service-worker.md 4.5 KB 檢視 references/extensions/user-scripts.md 9.1 KB 檢視 references/webstore/privacy-policy.md 4.1 KB 檢視

安裝 chrome-extensions

將技能檔案下載並解壓到您的 .claude/skills/ 目錄中。

下載 ZIP

複製儲存庫並將技能檔案複製到您的專案中。

git clone # Copy SKILL.md to your .claude/skills/ directory

複製 複製
快速設定: 將該技能資料夾複製到 .claude/skills/ 目錄中,Claude 會自動檢測並使用該技能。

相關技能

playwright-cli
更新時間 2026-06-29
frontend-testing-best-practices
更新時間 2026-07-07
Playwright Browser Automation
更新時間 2026-06-29
playwright-generate-test
更新時間 2026-06-29
OR