位置: 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项目实战)

  • 三星手机怎么把手机格式化(三星手机怎么把旧手机转移到新手机)

    三星手机怎么把手机格式化(三星手机怎么把旧手机转移到新手机)

  • 华为荣耀10青春版和20青春版区别(华为荣耀10青春版屏幕多大)

    华为荣耀10青春版和20青春版区别(华为荣耀10青春版屏幕多大)

  • oxfan00是华为什么型号(华为oxf-an00是什么型号)

    oxfan00是华为什么型号(华为oxf-an00是什么型号)

  • 华为mate30支持几倍变焦(华为mate30支持几w快充)

    华为mate30支持几倍变焦(华为mate30支持几w快充)

  • 修改微信号为什么出现账号存在(修改微信号为什么显示已被使用)

    修改微信号为什么出现账号存在(修改微信号为什么显示已被使用)

  • iphonex信号差是通病吗(iohonex信号变得很差)

    iphonex信号差是通病吗(iohonex信号变得很差)

  • 快手热门是什么意思(快手热门啥意思)

    快手热门是什么意思(快手热门啥意思)

  • 小米10看视频不能全屏(小米看视频不清晰)

    小米10看视频不能全屏(小米看视频不清晰)

  • 电脑插上鼠标不能用怎么办(电脑插上鼠标不管用是怎么回事)

    电脑插上鼠标不能用怎么办(电脑插上鼠标不管用是怎么回事)

  • 网线直接连接路由器能用吗(网线直接连接路由器速度会降吗)

    网线直接连接路由器能用吗(网线直接连接路由器速度会降吗)

  • 苹果11可以更新13.3系统吗(苹果11可以更新15.7版本会不会卡)

    苹果11可以更新13.3系统吗(苹果11可以更新15.7版本会不会卡)

  • 荣耀手机的文件在哪里(荣耀手机的文件管理在哪里找)

    荣耀手机的文件在哪里(荣耀手机的文件管理在哪里找)

  • 苹果24小时怎么设置(苹果24小时怎么弄)

    苹果24小时怎么设置(苹果24小时怎么弄)

  • oppoa5耳机模式在哪里(oppoa55手机耳机设置在哪)

    oppoa5耳机模式在哪里(oppoa55手机耳机设置在哪)

  • 华为手机安装未知应用在哪里设置(华为手机安装未知应用权限怎么修改)

    华为手机安装未知应用在哪里设置(华为手机安装未知应用权限怎么修改)

  • 如何使用拼多多免拼卡(如何使用拼多多钱包里的钱)

    如何使用拼多多免拼卡(如何使用拼多多钱包里的钱)

  • 浏览器私密空间怎么打开(浏览器私密空间在哪里打开)

    浏览器私密空间怎么打开(浏览器私密空间在哪里打开)

  • iphone6是什么处理器(iphone6属于什么手机?)

    iphone6是什么处理器(iphone6属于什么手机?)

  • 2019年中级会计师成绩查询时间及入口_查分网址_合格分数线(2019年中级会计考试真题)

    2019年中级会计师成绩查询时间及入口_查分网址_合格分数线(2019年中级会计考试真题)

  • python多线程和多进程(python多线程和多协程对比)

    python多线程和多进程(python多线程和多协程对比)

  • qq音乐怎么取消关注用户(qq音乐怎么取消其他设备登录)

    qq音乐怎么取消关注用户(qq音乐怎么取消其他设备登录)

  • 为什么发的抖音别人看不到(为什么发的抖音突然间消失了)

    为什么发的抖音别人看不到(为什么发的抖音突然间消失了)

  • 无法访问您可能没有权限使用网络资源解决方法(无法访问您可能没有权限使用资源)

    无法访问您可能没有权限使用网络资源解决方法(无法访问您可能没有权限使用资源)

  • 虚拟机不能上互联网怎么办 VMware host-only模式上网配置的方法(虚拟机不能互相访问)

    虚拟机不能上互联网怎么办 VMware host-only模式上网配置的方法(虚拟机不能互相访问)

  • 博德明高沼上布朗威利山麓的废弃小屋,英格兰 (© Helen Hotson/Alamy Stock Photo)

    博德明高沼上布朗威利山麓的废弃小屋,英格兰 (© Helen Hotson/Alamy Stock Photo)

  • setenv命令  设置与显示系统环境变量信息(set nu命令)

    setenv命令 设置与显示系统环境变量信息(set nu命令)

  • 土地增值税常见问题及解答
  • 母公司合并子公司会计处理
  • 所得税交多了怎么办
  • 电商相对于传统企业有哪些特点?
  • 摄影服务的开票项目
  • 报关单汇率按出口日期还是申报日期
  • 增值税进项加计扣除计入哪个科目
  • 无形资产计税基础怎么算
  • 购买业务委托书计入什么科目
  • 用于后勤管理部的工作
  • 其他应收款账目
  • 利润表中的其他综合收益
  • 增值税加计扣除账务处理
  • 设置会计科目的步骤
  • 行政单位收入支出结转
  • 累计折旧计入资产负债表什么科目
  • 货运代理公司排名前十
  • 注册商标成功的标志图片
  • 公司向个人借款利率最高多少
  • 旅行社代订机票怎么做账
  • 电子发票一定要入账吗
  • 出让方式取得土地使用权会计处理
  • 分红未及时扣缴税款要缴滞纳金吗?
  • 以前年度损益在借方
  • 企业支出的资产包括哪些
  • 航天金税电子发票
  • 专票可以当普票用不抵扣吗
  • 不合规发票有哪些风险
  • 在建工程产生废料收入的账务处理?
  • msconfig配置文件修改
  • PHP中使用全局变量来接受表单中提交的数据
  • 资产与负债的计税基础
  • 税收返还需要缴纳什么税
  • 分红财务做账
  • axios入门
  • 米苏拉塔是哪个国家
  • 去年买的设备今年入固定资产如何做账
  • vue怎么用bootstrap
  • https是如何保证安全的
  • python photoshop
  • 申报经营所得成绩怎么填
  • 办理外经证缴税流程
  • 待处理财产损溢增加是哪方
  • 企业会计准则规定了
  • 非限定性净资产包括哪些科目
  • 二季度盈利三季度亏损
  • 印花税怎么交税率是多少
  • 专票红冲要不要收回发票联呢?
  • 增值税纳税申报类型怎么填
  • 税款要在15号前扣吗
  • 一般纳税人必须有办公地点吗
  • 销售返利及发票开具如何进行会计处理?
  • 低值易耗品的账务处理图片
  • 计提工会经费会计分录怎么写
  • 个人承包公司运输违法吗
  • 事业单位劳务派遣是啥意思
  • 公司购买的财产保险要交印花税吗
  • 非营利性代收代缴税款
  • 专票的发票金额是价税总额吗
  • 计提税金及附加的金额如何算
  • 折现率的选择主要是根据什么来判断
  • mysql查找指定元素的位置
  • win10 9月更新 问题
  • Windows 2008之AD LDS轻型目录服务解析
  • win10系统怎么清理电脑垃圾
  • win8系统游戏
  • fedora update-grub
  • 利用百度地图画cad图
  • javascriptjs
  • activity传递数据
  • Node.js中的全局变量有哪些
  • python进行统计分析
  • shell判断文件是否存在且大小不为0
  • Linux bash Shell中的变量类型详解
  • unityshader插件
  • 安卓xml存储方式
  • 湖南国家电子税务局手机版
  • 江苏宿迁个体户那个园区好
  • 社保在哪里缴费
  • 010是哪个市区的电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设