快速制作一个chrome插件

17 篇文章 0 订阅
订阅专栏
本文介绍了如何开发Chrome浏览器插件,从项目的基本结构如manifest.json的配置,到html+js的简单实现,再到使用Vue构建弹窗页面,最后讲解了浏览器导入插件的步骤。提供了一个简单的插件模板源码,并在npm上有相应的模板下载。
摘要由CSDN通过智能技术生成

说在前面

在我日常开发以及娱乐生活中,浏览器是我使用频率较高的一个应用,当我大学拥有第一部电脑开始,之后不论电脑换成什么,以及使用的是什么系统,我的首选浏览器都是Chrome,不仅仅是因为其速度快,更多是它丰富的扩展在吸引我,那么大家有没有想过如何自己来开发一个Chrome浏览器插件呢?是不是有的同学会觉得Chrome浏览器插件的制作难度会很大呢?今天就让我来带你们看看一个简单的Chrome浏览器插件的编写过程,并给大家制作一个简单的插件模板,大家可以通过模板来进行快速开发。

一、项目结构

一个完整的插件目录结构如下:

(一)html + js

1、manifest.json

简单配置,具体配置说明已在配置项后标出。

{
  "manifest_version": 2, //版本号,由google指定为2
  "name": "helloWorld", //插件名称
  "version": "1.0", //插件版本
  "description": "hello world 插件", //插件描述
  "icons": {
    //插件图标
    "128": "img/logo.jpg",
    "48": "img/logo.jpg",
    "16": "img/logo.jpg"
  },
  "browser_action": {
    "default_icon": "img/logo.jpg", //插件图标
    "default_popup": "default_popup" //点击图标后弹出的html互动文件
  },
  "content_scripts": [
    {
      "matches": ["<all_urls>"], //匹配url
      "js": ["bg.js"], //执行脚本
      "run_at": "document_start" //脚本运行时机
    }
  ],
  "permissions": ["tabs", "activeTab"] //权限申请
}

使用"content_scripts"你可以修改你当前访问的页面的dom,主要是靠js实现的,里面的"matches"是一个数组,里面装的是一些匹配的规则,意思就是当你的页面的地址满足数组里面的值的时候就会操作js文件,all_urls表示所有网页都会加载脚本。而"js"里面的是具体的操作,具体操作就是要自己写了。

2、popup.html

插件弹窗页,可以直接编写一个html页面,在manifest.json中的default_popup项进行配置即可。

<!DOCTYPE html>
<html lang="">
  <head>
    <title>helloWorld</title>
    <meta charset="utf-8" />
  </head>
  <body style="width: 200px; height: 200px">
    <h1 id="message">你好</h1>
    <input id="input1" type="text" />
  </body>
  <script src="js/popup.js"></script>
</html>
3、popup.js

插件弹窗页的脚本js代码,在popup.html页面中引入即可。

(function () {
  const input1 = document.getElementById("input1");
  const message = document.getElementById("message");
  input1.addEventListener("keyup", (e) => {
    message.innerHTML = "你好" + e.target.value;
    chrome.tabs.query({ active: true, currentWindow: true }, function (tab) {
      chrome.tabs.sendMessage(
        tab[0].id,
        {
          action: "hello",
          data: message.innerHTML,
        },
        function (response) {
          console.loig("收到回复:", response.state);
        }
      );
    });
  });
})();
4、bg.js

运行在浏览器打开tab窗体的脚本,需要在manifest.json中的content_scripts中进行配置。

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
  const { action, data } = request;
  console.log("%c Line:4 🥔 action,data", "color:#b03734", action, data);
  sendResponse({ state: "已接收到数据" + data });
});

(二)vue + js

1、使用vue来编写插件弹窗页

1676816205721.png

使用vue来编写插件弹窗页面,我们可以将项目结构简化成这样,只需要修改manifest.json中的default_popup为vue项目打出的dist包即可。

{
  "manifest_version": 2, //版本号,由google指定为2
  "name": "helloWorld", //插件名称
  "version": "1.0", //插件版本
  "description": "hello world 插件", //插件描述
  "icons": {
    //插件图标
    "128": "img/logo.jpg",
    "48": "img/logo.jpg",
    "16": "img/logo.jpg"
  },
  "browser_action": {
    "default_icon": "img/logo.jpg", //插件图标
    "default_popup": "demo/dist/index.html" //点击图标后弹出的html互动文件
  },
  "content_scripts": [
    {
      "matches": ["<all_urls>"], //匹配url
      "js": ["bg.js"], //执行脚本
      "run_at": "document_start" //脚本运行时机
    }
  ],
  "permissions": ["tabs", "activeTab"] //权限申请
}

并将popup.js文件移到vue项目中,在index.html中引入即可。

1676821818851.png

二、浏览器导入插件

(一)进入chrome扩展程序管理页

1676816452670.png

1676816528511.png

(二)加载扩展程序

1676816613593.png

1676819409171.png

(三)页面使用插件

1676819535278.png

1676819559826.png

三、模板源码

(一)gitee源码下载

模板代码已上传到gitee,具体地址如下:

https://gitee.com/zheng_yongtao/chrome-plug-in.git

1676819669819.png

(二)依赖下载

拉取模板代码之后需要先下载vue模板的依赖(npm install)。

1676819821457.png

(三)vue打包

安装好vue模板的依赖之后,就可以对vue项目进行打包(npm run build)。

1676819895550.png

四、npm下载

插件模板我也已经上传了一份到了npm上,可以直接通过npm将模板下载下来:

npm i @jyeontu/chrome-plug-template

1676821595855.png

说在后面

🎉这里是JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球🏸 ,平时也喜欢写些东西,既为自己记录📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解🙇,写错的地方望指出,定会认真改进😊,在此谢谢大家的支持,我们下文再见🙌。

JavaScript用浏览器书签制作插件(爬虫)
Π指针
08-13 2203
学习JavaScript通过浏览器的书签去实现爬虫等功能 书签也可以直接操作网页的DOM结点
【实用教程】 实战写浏览器插件!
aqwca的博客
08-23 864
这是内容脚本的工作。现在Edge浏览器和Chrome浏览器都差不太多,需要修改一些API即可进行移植,这里选择Chrome浏览器,因为谷歌官方教程写得更详细一些,这里使用的是最新的V3版本.其中,action键指定 Chrome 浏览器应作为扩展的操作图标使用的图片,以及在点击扩展的操作图标时弹出的 HTML 页面.icons里的选项对应不同的展示.最后我写了一个简单的划重点的扩展,用户点击扩展后可以自己选择某种预定的颜色或者自定义某种颜色,然后光标选中的文字就会根据选择变色作为画出的重点.
chrome 插件开发入门
最新发布
simon的博客
09-03 2723
chrome 插件开发入门
开发 Chrome 浏览器插件入门
aicsswo的博客
04-27 8365
简介Chrome 插件是扩展 Chrome 浏览器的功能的软件程序。它们可以执行各种任务,例如阻止广告、增强隐私、添加新功能等等。要开始编写 Chrome 插件,你需要掌握以下:1.JavaScript语言2.html3.css4.会使用chrome扩展开发手册。
基于web/h5应用的插件/扩展/业务剥离方案设计
qq_29456953的博客
10-13 484
基于web/h5应用的插件/扩展方案设计 本文是一个系列文章,谈谈如何降低应用的复杂度,增加可维护性。 文章里面提供的是一种思路,并根据此思路进行实现,将遇到的问题进行解决。 背景 随着用户体量的增加,功能会越来越多,系统会越来越庞大,基于后端的微服务越来越大火,前端层面更多的关注vue,react之类的框架上, 他们解决的是视图和数据的分离,但业务层面的框架或者思想的分享则不多,毕竟偏离了技术的路线。 思想 类似与微信与小程序,浏览器与扩展,或者操作系统与应用程序之间的关系,都是面向开发者的服务(如果客户
手把手教你从0到1开发浏览器插件
熟悉JS拼写的FE
06-03 8279
Chrome插件,官方名称extensions(扩展程序);为了方便理解,以下都称为Chrome插件,或者简称插件,那么什么是Chrome插件呢?扩展程序是自定义浏览体验的小型软件程序。它们让用户可以通过多种方式定制Chrome的功能和行为。插件程序可以提供以下几个功能:生产力工具:网页内容丰富信息聚合乐趣和游戏可以通过点击更多 -> 扩展程序来查看所有安装的插件,或者直接打开插件标签页。
chrome插件编写之新版hello world
weixin_30420305的博客
11-09 724
编写chrome插件之前,需要熟悉一下相应的chrome插件开发环境。从编写hello world开始,参考阅读官方的教程,是一个不错的选择。这里主要是基于chrome的官方教程,稍稍做了一些修改和扩充,总结成了如下的几个部分。 在chrome中编写插件和写网页应用基本一致,采用的是javascript+css+html的方式。所以对于用过chrome浏览器审阅过一些网页的源码,写...
Axure-0.6.2-chrome插件-打开原型图
04-08
而"软件/插件"标签表明这是一个软件扩展,即Chrome插件,用于增强原有浏览器的功能。 总的来说,Axure 0.6.2 Chrome插件是提升原型设计协作效率的利器。它简化了原型的查看和测试过程,降低了团队成员之间的沟通...
gliffy 流程图 chrome插件
01-18
总的来说,Gliffy流程图Chrome插件是Java开发环境中一个高效且实用的工具,它简化了流程图的创建流程,增强了Web应用的图表功能,并通过API接口为开发者提供了更多的可能性。无论你是需要为项目文档添加图表,还是...
最新Chrome插件 WEB 网页数据采集和爬虫程序_chrome插件爬虫开发
2401_84585155的博客
05-03 1092
现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。我们的请求很可能被防火墙、网关、WAF(Web 应用防护系统)等前置设备、应用拦截,压根没有到藏在后面的网站。不过,无论是何种方式,都要随着目标网站的更新迭代,做相应的适配,否则会出现程序无效的情况,而这是一个耗时耗力的过程🙂。
原型图插件 axure-chrome-extension-V0.6.3
10-25
"原型图插件 axure-chrome-extension-V0.6.3"是针对谷歌浏览器(Chrome)的一个扩展,旨在帮助用户更方便地查看和测试Axure制作的原型设计。 首先,让我们深入了解一下Axure。Axure RP(Rapid Prototyping)是一个...
开发Chrome浏览器插件 - 第一步
xingyu_qie的专栏
08-06 1240
确认所有信息填写无误后,点击“Publish”按钮。你的扩展程序会进入审核阶段,审核通过后就会在Chrome Web Store上架。支付完成后,你的开发者账号就创建成功了。: 登录后,会提示你接受Chrome Web Store的开发者协议。: 使用你的Google账号登录。如果没有Google账号,需要先创建一个。: 登录开发者控制台后,点击“Add a new item”按钮。: 按提示上传你的扩展程序压缩包(zip格式)。: 根据提示填写扩展程序的详细信息,包括名称、描述、截图、类别等。
如何编写一个chrome插件
xulei_cow的博客
11-30 4882
chrome插件开发,javascript,js编写插件
你也可以开发自己浏览器插件
我们一起学前端
10-05 2759
现阶段的chrome的应用商店中,将插件(这里说的插件指代chrome应用的所有分类,下文亦同)分为如下几种,包括。在应用商店中下载下来的插件基本上都是以.crx为文件后缀,该文件其实就是一个压缩包,包括插件所需要的html、css、javascript、图片资源等等文件。一般来说,清单文件manifest.json文件是必须的,且必须放在插件开发目录的根目录上。而且插件的种类多种多样,保罗万象,基本上都能找到你想要的功能的插件。template 目录是放置整个插件的功能页面模板的。
chrome谷歌浏览器插件制作简易教程
weixin_30273175的博客
11-30 409
1.在磁盘上创建一个目录,用来放应用的代码和资源 2.在这个目录中,创建一个文本文件,命名为manifest.json,其内容为: { "manifest_version": 2, "name": "Getting started example", "description": "This extension shows a Google Im...
Javascript编写Chrome浏览器插件
weixin_30426957的博客
07-02 766
原文:http://homepage.yesky.com/62/11206062.shtml 用Javascript编写Chrome浏览器插件 2010-04-12 07:30 来源:天极网软件频道 作者:Claud Xiao 责任编辑:杨玲·yesky 评论(5)   我为Chrome浏览器开发了一款插件,当我向朋友展示自己的插件时,受到他们的羡慕和...
浏览器插件——从开发到部署全流程详解
m0_57021623的博客
04-10 6517
插件部署
写文章

热门文章

  • XML转换成JSON 14590
  • 一文带你了解dfs和bfs算法 13840
  • vue + echarts实现中国地图省份下钻联动 11466
  • 时钟(分针和时针的重合问题) 10456
  • javascript中使用split对多个分割符进行分割 10346

分类专栏

  • node 22篇
  • 前端 108篇
  • JavaScript 234篇
  • Git 12篇
  • python 5篇
  • 网络 3篇
  • 组件开发 29篇
  • vue 48篇
  • 浏览器扩展插件 17篇
  • 算法 201篇
  • 程序人生 6篇
  • leetcode每日一题 123篇
  • shell 2篇
  • 数据库 14篇
  • 面试 1篇
  • 服务器 1篇
  • 爬虫
  • electron
  • canvas 1篇
  • 小程序 9篇
  • echarts 1篇
  • 日常 1篇
  • python爬虫 2篇
  • uniapp 2篇
  • Android 1篇
  • 加密算法 1篇
  • linux 1篇
  • spark 1篇
  • mysql 1篇
  • acm 16篇
  • hdu 38篇
  • unity 1篇

最新评论

  • vue可拖拽悬浮按钮组件

    JYeontu: 目前是不可以,可以自己参考改写下表情包

  • vue可拖拽悬浮按钮组件

    Nz_lei: 大佬 这个悬浮框可以放按钮什么的吗?

  • vue封装一个图案手势锁组件

    你老霸: 作者大哥 现在通过Npm下载下来的依赖会报错呢

  • 高清美图python全爬下(超详细步骤)

    无能空忆: 刚试了一下还能用。

  • emoji控必备:编写一个emoji选择器组件

    信计2102罗铠威: 大佬,这个表情选择器可以默认收起吗?发完评论,表情选择器隐藏,等到再次评论是在展开表情包

大家在看

  • 使用Llama Index与Streamlit实现一个从文本中提取专业术语和定义网页小程序 819
  • 基于SSM健身国际俱乐部系统的设计
  • Spring Boot:植物健康监测的智能领航者
  • 【产品经理修炼之道】-SaaS创业路线图(十):骨干营销团队培养 737
  • 【Java】初识Java 550

最新文章

  • node脚本导出数据库数据
  • javascript数组扁平化如何实现?
  • 如何克服解决 Git 冲突的恐惧症
2024
10月 10篇
07月 2篇
06月 16篇
04月 7篇
03月 32篇
02月 38篇
01月 46篇
2023年87篇
2022年50篇
2021年58篇
2020年38篇
2019年48篇

目录

目录

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JYeontu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司湖北网站优化要多少钱网站图片优化的八大要点网站新域名怎么优化网站站内代码结构优化的是wap网站优化于洪区推广网站建设优化价格深圳服务网站优化需要多少钱万词优化网站潍坊潍城网站优化推广哪家好英文网站标签优化无锡网站广优化公司江苏网站优化电话台州黄岩区高端百度网站优化福田信息网站优化的方法青海网站优化制作四川网站优化推广费用门户优化网站有哪些网站seo优化方案项目策划书日照网站建设方案优化坪地全国网站优化优化网站的方法岳阳网站推广优化开发教程高并发网站有优化吗珠海网站推广优化公司电话自然资源优化局网站网站怎么优化收录块宁阳网站优化公司360网站排优化阳江网站搜索引擎优化竞价排名密山市网站seo优化排名香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化