5分钟搞定你的第一个Chrome插件:从零开始开发一个浏览器小工具

发布时间:2026/5/28 21:22:12

5分钟搞定你的第一个Chrome插件:从零开始开发一个浏览器小工具 5分钟搞定你的第一个Chrome插件从零开始开发一个浏览器小工具每次浏览网页时你是否想过定制自己的浏览器功能比如自动高亮关键词、一键保存页面内容甚至屏蔽烦人的广告。Chrome插件正是实现这些想法的绝佳工具。本文将带你用最短时间完成一个能实际运行的插件Demo——不需要任何插件开发经验只要会基础的HTML和JavaScript即可。我们从最精简的3个文件开始5分钟后你就能在浏览器里看到自己的第一个作品。1. 准备开发环境只需一个文件夹和浏览器开发Chrome插件不需要安装任何特殊工具你的代码编辑器VS Code、Sublime等和Chrome浏览器就是全部所需。新建一个空文件夹作为项目根目录建议命名为my-first-extension。提示Chrome插件采用Web标准技术HTML/CSS/JS这意味着如果你会制作网页就已经具备了插件开发的基础能力。关键文件结构如下实际只需要前三个即可运行my-first-extension/ ├── manifest.json # 插件配置文件必须 ├── popup.html # 点击插件图标显示的页面 └── icon.png # 插件图标推荐48x48像素2. 创建核心配置文件manifest.jsonmanifest.json是每个Chrome插件的身份证采用JSON格式编写。复制以下代码到新建的manifest.json文件中{ manifest_version: 3, name: 五分钟插件Demo, version: 1.0, action: { default_popup: popup.html, default_icon: icon.png } }参数说明manifest_version: 必须为3最新版本name: 插件显示名称version: 语义化版本号action: 定义点击插件图标时的行为注意Manifest V3与旧版V2有重大差异本文采用2020年后推荐的新标准。3. 制作插件交互界面popup.html这个HTML文件决定了点击插件图标后显示的界面。创建一个包含按钮的简单页面!DOCTYPE html html head style body { width: 200px; padding: 10px; font-family: Arial; } button { background: #4285F4; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; } /style /head body h3我的第一个插件/h3 button idalertBtn点击有惊喜/button script srcpopup.js/script /body /html4. 添加交互逻辑popup.js在同目录下创建popup.js为按钮添加点击事件document.getElementById(alertBtn).addEventListener(click, () { chrome.tabs.query({active: true, currentWindow: true}, (tabs) { chrome.scripting.executeScript({ target: {tabId: tabs[0].id}, func: () { alert(恭喜你的插件生效了); document.body.style.backgroundColor #f0f8ff; } }); }); });这段代码实现了监听按钮点击事件获取当前活跃标签页向页面注入脚本改变背景色并弹出提示重要Chrome插件的安全策略要求通过chrome.scriptingAPI注入脚本5. 添加图标并加载插件找一个48x48像素的PNG图片命名为icon.png放入目录。然后在Chrome中访问chrome://extensions开启右上角开发者模式点击加载已解压的扩展程序选择你的插件文件夹成功加载后浏览器右上角会出现你的插件图标。点击测试效果![插件效果示意图](data:image/svgxml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE1MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZjBmOGZmIi8PHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzQyODVmNCI5o6I5p2D77yM5L2g5Lus5oiR5L2c5Li65o6I5p2D5bey5a6M5oiQPC90ZXh0Pjwvc3ZnPg)6. 进阶功能内容脚本实战让插件与网页深度交互比如修改当前页面标题。新建content.js// 随机生成有趣的新标题 const funTitles [ 正在学习插件开发, 这个标签页被魔法控制了, 浏览器增强模式已激活 ]; document.title funTitles[Math.floor(Math.random() * funTitles.length)];更新manifest.json添加内容脚本配置{ // ...原有配置... permissions: [scripting], content_scripts: [{ matches: [all_urls], js: [content.js] }] }现在刷新任意网页你会发现标签页标题被自动修改了7. 调试技巧与常见问题遇到问题时这些工具能快速定位插件后台页chrome://extensions→ 点击插件下的背景页弹出层调试右键点击插件图标 → 检查内容脚本普通网页的开发者工具F12常见问题解决问题现象可能原因解决方案修改代码后未生效缓存未更新在扩展页面点击刷新图标权限不足错误manifest未声明权限在permissions字段添加所需权限插件图标不显示图标路径错误检查路径大小写及文件是否存在8. 下一步学习路径完成这个Demo后你可以尝试这些方向深入浏览器API探索书签管理chrome.bookmarks历史记录查询chrome.history下载控制chrome.downloads用户界面增强使用React/Vue构建复杂popup添加选项页面options_page实现右键上下文菜单数据持久化// 存储数据 chrome.storage.local.set({ key: value }); // 读取数据 chrome.storage.local.get([key], (result) { console.log(result.key); });建议从解决实际问题出发比如开发一个网页阅读时间统计插件自定义样式注入工具快速笔记收集器第一次看到自己开发的插件在浏览器中运行时那种成就感是难以替代的。记得把第一个作品截图保存——这将成为你作为浏览器插件开发者的起点见证。

相关新闻