Hulk Chrome扩展开发全记录
一、项目背景
开发一款名为Hulk的浏览器扩展,核心功能是通过点击按钮将任意网页背景变为绿色。技术栈采用原生Web开发技术+Chrome扩展API。
二、开发流程
1. 项目初始化
mkdir hulk
cd hulk
mkdir icons
2. 核心文件创建
清单文件 (manifest.json)
{
"manifest_version": 3,
"name": "Hulk",
"version": "1.0",
"action": {
"default_popup": "popup.html",
"default_icon": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
}
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content.js"]
}]
}
弹出窗口 (popup.html)
<!DOCTYPE html>
<html>
<head>
<style>
/* 包含之前优化的CSS样式 */
button {
background-color: #4CAF50;
transition: background-color 0.3s;
/* ...其他样式... */
}
</style>
</head>
<body>
<button id="changeColorButton">变身绿巨人!</button>
<script src="popup.js"></script>
</body>
</html>
3. 功能实现
消息传递机制
// popup.js
document.getElementById('changeColorButton').addEventListener('click', () => {
chrome.tabs.query({active: true}, tabs => {
chrome.tabs.sendMessage(tabs[0].id, {action: "changeColor"})
});
});
// content.js
chrome.runtime.onMessage.addListener((msg) => {
if(msg.action === "changeColor") {
document.body.style.backgroundColor = "#4CAF50";
}
});
三、调试技巧
- 扩展加载:chrome://extensions/ → 开启开发者模式 → 加载解压的扩展
- 错误排查:
- 右键扩展图标 → "检查弹出视图"
- 目标页面按F12打开开发者工具
四、项目总结
技术要点 | 实现方案 |
---|---|
跨域通信 | Chrome消息传递API |
样式优化 | CSS过渡动画+响应式布局 |
权限控制 | manifest声明content_scripts |
五、效果
完整源码已托管在GitHub仓库,欢迎交流讨论!