手把手教你开发网页变色插件:Chrome扩展消息传递机制深度实践

0 阅读1分钟

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";
  }
});

三、调试技巧

  1. 扩展加载:chrome://extensions/ → 开启开发者模式 → 加载解压的扩展
  2. 错误排查
    • 右键扩展图标 → "检查弹出视图"
    • 目标页面按F12打开开发者工具

四、项目总结

技术要点实现方案
跨域通信Chrome消息传递API
样式优化CSS过渡动画+响应式布局
权限控制manifest声明content_scripts

五、效果

image.png

image.png

完整源码已托管在GitHub仓库,欢迎交流讨论!