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

[crxjs]自己创建一个浏览器插件

参考官方

https://crxjs.dev/vite-plugin/getting-started/vue/create-project

按照流程操作会失败的原因

是因为跨域的问题, 在此处添加

  server: {host: "localhost",port: 5173,cors: true,headers: {"Access-Control-Allow-Origin": "*",},},

在这里插入图片描述

添加匹配及通信

manifest.json

{"manifest_version": 3,"name": "CRXJS Vue Vite Example","version": "1.0.0","action": { "default_popup": "index.html" },"background": {"service_worker": "background.js","type": "module"},"content_scripts": [{"matches": ["*://localhost/*", "*://www.baidu.com/*"],"js": ["content.js"],"run_at": "document_end"}],"host_permissions": ["*://localhost/*", "*://www.baidu.com/*"]
}

content.js

window.onload = function () {// 页面加载包括所有依赖的资源(如图片、样式等)console.log("Page fully loaded and window.onload event fired.");document.dispatchEvent(new CustomEvent("extension-present", {detail: {message: "扩展已加载",version: "1.0",config: { theme: "dark" },},bubbles: true,}));
};

***.vue

<script>
import HelloWorld from '/src/components/HelloWorld.vue';
export default {components: {HelloWorld,},data() {return {hello: false,detail: ""};},methods: {handleExtensionEvent(event) {// 从event.detail获取参数this.detail = event.detail;const { message, version, config } = event.detail;console.log('收到扩展消息:', message);this.$store.commit('updateExtensionStatus', { version, config });this.hello = true;}},mounted() {document.addEventListener('extension-present', this.handleExtensionEvent);},beforeDestroy() {document.removeEventListener('extension-present', this.handleExtensionEvent);;},
};
</script>

在这里插入图片描述

在这里插入图片描述

http://www.xdnf.cn/news/8580.html

相关文章:

  • 嵌入式学习Day27
  • [特殊字符] 构建高内聚低耦合的接口架构:从数据校验到后置通知的分层实践
  • 2025年高防IP与游戏盾深度对比:如何选择最佳防护方案?
  • C语言中地址的加法和减法
  • iOS 上线前的性能与稳定性检查流程实录:开发者的“最后一公里”(含 KeyMob 应用经验)
  • 速卖通OpenAPI商品详情接口开发实战
  • 生产企业ERP系统,项目级ERP系统源码,实现业务流程的全面管理
  • 用DeepSeek提升前端开发效率
  • MCP 服务与 Agent 协同架构的实践解码:双轮驱动下的场景化价值创造
  • 【ICL】上下文学习
  • 数据合法性校验
  • 典型城市工况数据(Drive Cycle)用于车辆仿真
  • 与 JetBrains 官方沟通记录(PyCharm 相关问题反馈)
  • 怎么判断一个Android APP使用了Capacitor这个跨端框架
  • 智慧化工园区安全风险管控平台建设方案(Word)
  • PH热榜 | 2025-05-23
  • selinux基础知识
  • Linux虚拟机联网失败原因之一
  • 什么是软件压力测试,出压力测评报告的第三方软件检测公司推荐
  • 20250523-在Unity中创建角色动画(2D)(Set up Animator with State Machine)
  • LCS4110R加密芯片在打印机墨盒的应用
  • el-form表单规则验证
  • C# DataGrid扩展 - DataGrid不同模板切换
  • 电商美图设计工具,图生生-低成本打造高转化商品场景图
  • 【新品来袭】功耗降低56%爱普生研发新款晶体振荡器
  • 信息系统项目管理师考前练习9
  • InnoDB引擎底层解析(二)之InnoDB的Buffer Pool(二)
  • 嵌入式STM32学习——ESP8266 01S的基础介绍
  • ConvSearch-R1: 让LLM适应检索器的偏好或缺陷
  • 【数据架构03】数据治理架构篇