当前位置: 首页 > news >正文

Chrome 插件框架 Plasmo 基本使用示例

📦 1. 安装 Plasmo

在项目目录下运行:

npm create plasmo@latest

按照提示选择:

  • Name: your-extension
  • Extension Type: Chrome (or multiple browsers)
  • TypeScript: 推荐 Yes
  • Manifest Version: MV3
  • Use React: Yes(Plasmo 推荐)

完成后会生成一个 Plasmo 扩展工程。


🧩 2. 创建一个最简单的 Popup UI(弹出页)

popup.tsx 编辑:

function Popup() {return (<div style={{ padding: 16 }}><h1>Hello Plasmo!</h1><p>这是你的第一个 Plasmo 扩展。</p></div>)
}export default Popup

运行:

npm run dev

Plasmo 会自动生成浏览器扩展,并让你在开发者模式下安装。


🧲 3. 创建一个 Content Script(注入到网页的脚本)

新建文件:content.ts

console.log("Plasmo content script running!")window.addEventListener("click", () => {console.log("你点击了页面!")
})

Plasmo 会自动把它加入 manifest,无需你配置 manifest.json。


🔥 4. 与页面进行 DOM 操作

// content.ts
const banner = document.createElement("div")
banner.innerText = "Hello from Plasmo!"
banner.style.cssText = `position: fixed;top: 20px;left: 20px;padding: 10px 20px;background: black;color: white;border-radius: 8px;z-index: 999999;
`
document.body.appendChild(banner)

🔄 5. Background Service Worker(后台脚本)

创建 background.ts

chrome.runtime.onInstalled.addListener(() => {console.log("扩展已安装!")
})chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {if (msg.type === "PING") {sendResponse({ text: "PONG" })}
})

🔗 6. Content Script 与 Background 交互

content.ts:

chrome.runtime.sendMessage({ type: "PING" }, (response) => {console.log("后台回复:", response.text)
})

🎉 7. 打包扩展

npm run build

打包后输出在 build/ 目录。


📚 完整最小示例结构

my-plasmo-extension/
├─ popup.tsx
├─ background.ts
├─ content.ts
├─ package.json
└─ plasmo.config.mjs

这就是一个可运行的 Plasmo 扩展最小示例。

http://www.dtcms.com/a/609831.html

相关文章:

  • 一小时学做网站杭州高端网站设计
  • LinuxC语言文件i/o笔记(第十八天)
  • 上海网站设计哪家强常州做上市公司律所
  • Word进阶
  • MySQL: 基准测试全流程指南:原理、工具(mysqlslap/sysbench)与实战演示
  • 青岛建站公司流程建筑行业公司
  • 贵州省网站备案虚拟主机管理系统
  • Hexo 个人博客从搭建到上线全流程(含踩坑指南)
  • CNN详解:卷积神经网络是如何识别图像的?
  • [高可用/负载均衡] Ribbon LoadBalancer: 开源的客户端式负载均衡框架
  • 深入理解 Python 的 `with` 语句及其与迭代器的交互
  • R脚本-环境数据处理:利用R批量对环境数据眼膜提取转ASC
  • 可做影视网站的服务器手机浏览wordpress
  • 网站做跳转微信打开源码之家
  • 集美区网站建设校园网站建设管理工作制度
  • MySQL 常用 SQL 语句大全
  • 海康视频 h5player 配置 proxy 代理websocket播放视频问题(websocket在业务系统https方式访问http的播放视频)
  • 近期发生一个因为渲染导致的bug
  • 关于在嵌入式中打印float类型遇到的bug
  • Docker、Compose、Portainer与K8s详解
  • 益和热力性能优化实践:从 SQL Server 到 TDengine,写入快 20 秒、查询提速 5 倍
  • 自定义导航网站 源码网站按钮样式
  • docker启动失败
  • 卡索(CASO)汽车调查:数据智能时代,车企如何打赢一场“认知战”?
  • 数据结构之二叉树-链式结构(上)
  • 无极网站广告制作合同模板免费
  • 安全模式怎么进?【图文详解】win10/11安全模式?如何进入安全模式?
  • Docker 全面技术指南:从基础概念到企业级应用实践
  • 网站建设自评报告wordpress添加自定义导航栏
  • 开源模型应用落地-工具使用篇-Spring AI-高阶用法(九)