You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JavaScript扩展为指定网站添加自定义盒子、按钮等元素

从零搭建Chrome扩展:在指定网站注入自定义元素

别担心,我一步步带你从零搞定这个Chrome扩展,完全不用怕没基础!咱们就以Stack Overflow为目标网站,做一个能注入自定义盒子和按钮的小扩展。

第一步:创建扩展的文件结构

先在电脑上建一个新文件夹(比如叫custom-site-injector),里面要放这三个核心文件:

  • manifest.json(扩展的配置核心,告诉Chrome这个扩展是干啥的)
  • inject.js(用来写注入HTML元素的JavaScript代码)
  • styles.css(用来美化咱们的自定义元素)

第二步:编写Manifest配置文件

打开manifest.json,复制下面的代码,我会给你逐行解释:

{
  "manifest_version": 3,
  "name": "自定义页面注入工具",
  "version": "1.0",
  "description": "在Stack Overflow上添加自定义元素",
  "content_scripts": [
    {
      "matches": ["https://stackoverflow.com/*"],
      "js": ["inject.js"],
      "css": ["styles.css"],
      "run_at": "document_end"
    }
  ]
}
  • manifest_version: 3:这是Chrome扩展最新的标准,必须写这个
  • matches:指定哪些网站要生效,https://stackoverflow.com/*表示Stack Overflow的所有页面都触发
  • js和css:告诉Chrome要注入到目标页面的脚本和样式文件
  • run_at: document_end:等页面加载完再注入,避免找不到页面元素

第三步:写注入自定义元素的JS代码

打开inject.js,咱们写个简单的例子:创建一个带文本的自定义盒子,再加一个点击能弹窗的按钮。

// 创建自定义盒子
const customBox = document.createElement('div');
customBox.className = 'my-custom-box';
customBox.innerHTML = `
  <h3>这是我的自定义盒子!</h3>
  <p>我是通过Chrome扩展注入的内容~</p>
  <button id="my-custom-btn">点我试试</button>
`;

// 把盒子插入到页面最顶部
document.body.prepend(customBox);

// 给按钮加点击事件
document.getElementById('my-custom-btn').addEventListener('click', () => {
  alert('你点击了自定义按钮!');
});

这段代码的逻辑很简单:用document.createElement创建元素,设置内容和类名,然后插入到页面的body最前面,最后给按钮绑定点击事件。

如果想把元素插入到页面的特定位置(比如Stack Overflow的侧边栏),可以用document.querySelector定位,比如:

// 找到Stack Overflow的侧边栏容器,把盒子插进去
const sidebar = document.querySelector('.sidebar');
if (sidebar) {
  sidebar.appendChild(customBox);
}

第四步:美化自定义元素

打开styles.css,给咱们的盒子加样式,避免和原网站的样式冲突:

.my-custom-box {
  background-color: #f0f8ff;
  padding: 15px;
  border-radius: 8px;
  border: 1px solid #add8e6;
  margin-bottom: 20px;
}

.my-custom-box h3 {
  margin-top: 0;
  color: #2c3e50;
}

#my-custom-btn {
  background-color: #3498db;
  color: white;
  border: none;
  padding: 8px 16px;
  border-radius: 4px;
  cursor: pointer;
}

#my-custom-btn:hover {
  background-color: #2980b9;
}

这里用了独特的类名my-custom-box,这样就不会和原网站的CSS类冲突啦。

第五步:加载并测试扩展

  1. 打开Chrome浏览器,输入chrome://extensions/进入扩展管理页面
  2. 打开右上角的「开发者模式」开关
  3. 点击左上角的「加载已解压的扩展程序」,选择咱们刚才创建的custom-site-injector文件夹
  4. 现在打开Stack Overflow的任意页面,就能看到咱们的自定义盒子和按钮啦!

一些进阶小提示

  • 如果要适配多个网站,只要在manifest.json的matches里加更多网址就行,比如["https://stackoverflow.com/*", "https://github.com/*"]
  • 可以用document.addEventListener('DOMContentLoaded', () => { ... })确保页面完全加载后再执行代码(不过咱们已经在manifest里设了run_at: document_end,一般不用额外加)
  • 如果需要更复杂的交互,可以在content script里调用Chrome的API(不过Manifest V3里有些API需要特殊配置,比如permissions)

内容的提问来源于stack exchange,提问作者Kencho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:16:43