位置: IT常识 - 正文

Chrome插件开发教程(chrome 浏览器插件开发)

编辑:rootadmin
Chrome插件开发教程

推荐整理分享Chrome插件开发教程(chrome 浏览器插件开发),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:chrome插件开发工具,chrome插件使用,chrome插件开发文档官方,chrome插件使用,chrome 浏览器插件开发,chrome插件开发工具,chrome插件开发文档官方,chrome插件开发视频教程,内容如对您有帮助,希望把文章链接给更多的朋友!

本文将详细介绍如何开发一款Chrome插件,包括插件的介绍、开发配置与调试。不包含插件的发布、审核等内容。

通过阅读本教程,你能够:

了解浏览器器插件,这里专指 Chrome Extension(CE)的基本知识和运行原理了解如何开发CE的界面和逻辑调试插件,根据错误信息做出修复什么是浏览器插件

浏览器插件是一种可增强网页功能的嵌入程序。有了插件,用户的使用不再局限于网页,还可以享用插件带来的增强功能。用户只需到官方插件商店搜索、下载、安装即可使用,非常便捷。 插件商店由不同的浏览器厂商维护,比如你要在Chrome上使用插件,要到Chrome Webstore下载安装。Firefox上亦然。

创建 manifest

新建文件夹,命名CE-Demo,增加一个manifest.json的文件,内容如下:

{ "name": "CE-Demo", "description": "CE-Demo's description shows here!", "version": "0.0.1", "manifest_version": 3}复制代码

该文件描述了插件的基本属性信息、代码的运行路径等。后面我会不断地丰富其内容。

加载插件

这里我们直接载入整个目录(尚未打包):

1.地址栏输入chrome://extensions进入插件管理页面。 2.选中界面右上角的开发者模式 3.点击左上角的加载已解压的扩展程序,并选中刚才的插件文件夹

插件已经成功载入。 可以点击扩展程序按钮,鼠标移动到插件右侧的固定按钮,固定到标签栏里。

标签栏多了个icon图标,点击可唤出插件的popup界面:

插件不会热更新,记得每次修改代码后点击刷新icon载入最新代码

添加功能

我们将实现一个简易版的历史记录插件。

注册 background.js

它是一种后台脚本,浏览器会在插件安装或重新加载时扫描它并初始化(事件的监听等)。它是整个插件的重要组成部分。必须在manifest里配置。

{"name": "CE-Demo", "description": "I am a demo", "version": "0.0.1", "manifest_version": 3, "background": { "service_worker": "background.js" }}复制代码Chrome插件开发教程(chrome 浏览器插件开发)

同时在插件目录添加background.js文件,包含以下代码:

chrome.runtime.onInstalled.addListener(() => { console.log('后台脚本运行成功!') chrome.storage.sync.set({ history: [] });});复制代码

代码将在插件安装完毕后,做两件事:

1.打印一段日志信息 2.通过storage API 设置一个初始值为空数组的存储字段。

要使用storage,需在manifest添加该权限:

{ ... "permissions": ["storage"] ...}复制代码

点击server worker链接打开devtools界面,即可看到日志信息:

添加历史界面

这里,我们选择popup的交互形式:当用户点击标签栏里插件图标时展示用户的访问历史(仅含插件安装后的历史)。 我们需要覆盖默认的popup界面,修改manifest:

{ ... "action": { "default_popup": "popup.html" }, ...}复制代码

在插件目录新增三个文件:popup.html、popup.js、popup.css:

<!DOCTYPE html><html> <head> <link rel="stylesheet" href="popup.css"> </head> <body> <div id="container"> 暂无浏览记录~ </div> <script src="popup.js"></script> </body></html>复制代码chrome.storage.sync.get("history", ({ history }) => { const contentHTML = history.length === 0 ? "暂无浏览记录~" : history .map((record) => { return ` <div class="item-box"> <div class="item-box_time">${record.time}</div> <a class="item-box_text" href="${record.url}">${record.title}</a> </div> `; }) .join(""); document.querySelector('#container').innerHTML = contentHTML});复制代码

上述代码先从storage里读取history内容,再将内容组装成html插入到文档中。

记录浏览历史

插件提供了内容脚本 Content Scripts(CS)的概念,当用户打开并访问某个网站时,浏览器将CS注入网站的文档里执行。 因此,我们需在CS脚本里编写记录的逻辑。 往manifest里添加CS:

{ ... "content_scripts": [ { "matches": ["*://*/*"], "js": ["content/index.js"] } ]}复制代码

插件目录里新增目录content并添加index.js文件:

chrome.storage.sync.get("history", ({ history }) => { console.log("history--->", history); history.unshift({ title: document.title, url: location.href, time: new Date().toLocaleString(), }); chrome.storage.sync.set({ history });});复制代码

上述代码获取访问的页面的 标题,url,访问时间存储到 storage里。 随便访问几个网页后,点击插件图标可以看到:

添加自定义icon 默认icon比较简陋,我们用一张熊猫图片作为插件的icon。 新增assets目录,放一个icon.png文件。 修改manifest:

{ "action": { "default_icon": { "16": "/assets/icon.png" } }}复制代码

源码附件已经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27 提取码: yu27 百度云链接不稳定,随时可能会失效,大家抓紧保存哈。

如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~

开源地址

码云地址: http://github.crmeb.net/u/defu

Github 地址: http://github.crmeb.net/u/defu

链接:https://juejin.cn/post/7122439073058258958

本文链接地址:https://www.jiuchutong.com/zhishi/298298.html 转载请保留说明!

上一篇:【Javaweb学习笔记】在Eclipse中创建Web项目(javaweb总结笔记)

下一篇:Vue项目实战——实现一个任务清单【基于 Vue3.x 全家桶(简易版)】(最全vue项目实战)

  • 人生苦短心有爱,生活随意才自在(人生苦短心有爱的句子)

    人生苦短心有爱,生活随意才自在(人生苦短心有爱的句子)

  • 淘宝退款到花呗怎么查询到账(淘宝退款到花呗,花呗已经付清,怎么办)

    淘宝退款到花呗怎么查询到账(淘宝退款到花呗,花呗已经付清,怎么办)

  • 华为手机音量调到最大 还是太小怎么办(华为手机音量调到最小还是觉得大怎么办)

    华为手机音量调到最大 还是太小怎么办(华为手机音量调到最小还是觉得大怎么办)

  • 指定的网络名不可再用(指定的网络名不再可用 win11)

    指定的网络名不可再用(指定的网络名不再可用 win11)

  • 华为手机如何拍照识别文字(华为手机如何拍星空夜景)

    华为手机如何拍照识别文字(华为手机如何拍星空夜景)

  • 淘宝补差价链接怎么弄(淘宝补差价链接选什么类目)

    淘宝补差价链接怎么弄(淘宝补差价链接选什么类目)

  • 抖音极速版不能发作品吗(抖音极速版不能切换账号吗)

    抖音极速版不能发作品吗(抖音极速版不能切换账号吗)

  • 华为p40容易发热吗(华为p40为啥发热)

    华为p40容易发热吗(华为p40为啥发热)

  • 多闪可以看访客记录吗(多闪的访客记录就是抖音的吗)

    多闪可以看访客记录吗(多闪的访客记录就是抖音的吗)

  • vivo手机卡怎么取出来(vivo手机卡怎么办视频教程)

    vivo手机卡怎么取出来(vivo手机卡怎么办视频教程)

  • 华为自己的系统叫什么(华为自己的系统叫什么系统)

    华为自己的系统叫什么(华为自己的系统叫什么系统)

  • 怎么遮住蓝牙耳机的呼吸灯(蓝牙耳机咋样带防止掉了)

    怎么遮住蓝牙耳机的呼吸灯(蓝牙耳机咋样带防止掉了)

  • 苹果7p指纹解锁不灵敏怎么办(苹果7p指纹解锁在哪设置)

    苹果7p指纹解锁不灵敏怎么办(苹果7p指纹解锁在哪设置)

  • 如何解决ipad闪退问题(ipad 频闪)

    如何解决ipad闪退问题(ipad 频闪)

  • access数据库主要功能(access数据库主要用于)

    access数据库主要功能(access数据库主要用于)

  • 电脑连接手机热点有个感叹号(电脑连接手机热点无法上网)

    电脑连接手机热点有个感叹号(电脑连接手机热点无法上网)

  • eps ups区别(eps和ups哪个贵)

    eps ups区别(eps和ups哪个贵)

  • 快手怎么删自己的动态(快手怎么删自己的评论图片)

    快手怎么删自己的动态(快手怎么删自己的评论图片)

  • 手机归属地可以改吗(手机归属地可以转吗?)

    手机归属地可以改吗(手机归属地可以转吗?)

  • 拼多多省钱月卡怎么取消自动续费(拼多多省钱月卡会自动续费吗)

    拼多多省钱月卡怎么取消自动续费(拼多多省钱月卡会自动续费吗)

  •  6sp上市时间(6sp什么时候上市的)

    6sp上市时间(6sp什么时候上市的)

  • 优活手环蓝牙连接不到(优活手环蓝牙连接失败)

    优活手环蓝牙连接不到(优活手环蓝牙连接失败)

  • TCN(Temporal Convolutional Network,时间卷积网络)

    TCN(Temporal Convolutional Network,时间卷积网络)

  • 国家税务总局操作指引
  • 不予认定一般纳税人
  • 生产企业出口退税流程
  • 房地产中介门头
  • 电子承兑汇票贴现流程
  • 民办非企业可以上市吗
  • 摊销广告费会计分录
  • 附加税是当月计算吗
  • 金税盘清卡时间包括15号吗
  • 有形动产租赁服务计入什么科目
  • 中介行业风险
  • 非正常损失会计利润调整
  • 自然人独资企业交哪些税
  • 收保险赔偿款如何处理?
  • 补入库存商品的会计分录
  • 分支机构的固定资产转移如何处理?
  • 劳务公司开的专票需要交税吗
  • 高速公路抵税
  • 过路费发票可以抵扣增值税吗
  • 发票月初抄税流程
  • 空调折旧年限的最新规定2018
  • 公司终止的时间是进行注销登记生效后
  • 工商营业年报怎么做
  • 幼儿园收的保教费是什么费
  • 出租设备的折旧计入哪个科目
  • 科技型企业科研项目申报
  • 企业合并的会计分录
  • 外汇账户怎么开
  • 企业给予的折扣怎么入账
  • 工厂院子里的地图怎么画
  • 图解在OS X中管理窗口大小的多种方法
  • 公寓收费标准
  • w11系统黑屏
  • consolo application
  • 如何申请公积金装修房子
  • uniapp自定义下拉刷新上拉加载
  • mds是什么进程
  • php入门基础教程
  • 信托融资放在哪个科目
  • 计算机视觉项目文档
  • PHP编写简易计算器
  • vuejs echarts
  • 在建工程业务核算
  • 租金发票的税率多少
  • 技术转让免征增值税需要备案吗
  • 发票走账不走账怎么处理
  • python对应位置相乘
  • 织梦自定义字段
  • 盘盈材料会计分录
  • 会计人员信息采集怎么填
  • 特许经营企业的特点
  • 个人所得税房屋贷款扣除比例怎么选
  • Sql Server 2005的1433端口打开局域网访问和进行远程连接
  • 金税盘抵扣税款分录怎么做
  • 拆迁补偿款收税吗
  • 营改增进程
  • 实收资本如何进行核算
  • 供应商货款支付流程
  • 酒店财务帐务处理方案
  • sql server 数据库介绍
  • Win8系统Smartscreen筛选器界面变灰无法设置的解决方法
  • linux常用帮助命令
  • 文件夹字体变成蓝色怎么恢复
  • win10rs2是哪个版本
  • ubuntu系统安装谷歌浏览器
  • win10打开小娜
  • gacrunner.exe是什么
  • windows关机电源不断电
  • win10h2版本
  • linux打成zip包
  • unix网络命令
  • win7自带解压缩
  • 计算机图形学是什么专业
  • jquery校验数字
  • jquery使用css
  • jQuery基于muipicker实现仿ios时间选择
  • 党建服务中心属于哪个区
  • 为什么征收城市建设维护税却不征收教育附加税
  • 个人独资企业如何避税
  • 税务工作者发展现状
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设