位置: IT常识 - 正文

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

发布时间:2024-01-17
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项目实战)

  • 金融行业网络营销的几种方法(金融行业网络营销策略)

    金融行业网络营销的几种方法(金融行业网络营销策略)

  • 网址的格式是什么样的(网址格式怎么写举例子)

    网址的格式是什么样的(网址格式怎么写举例子)

  • 剪映画布怎么用(剪映怎么弄画布样式)

    剪映画布怎么用(剪映怎么弄画布样式)

  • 智能对象不能直接编辑(智能对象可以被定义吗)

    智能对象不能直接编辑(智能对象可以被定义吗)

  • 华为mate10充电器型号(华为mate10充电器多少w)

    华为mate10充电器型号(华为mate10充电器多少w)

  • 文本形式是啥(文本形式在哪里)

    文本形式是啥(文本形式在哪里)

  • 路由器不通电怎么回事(路由器不通电怎么办)

    路由器不通电怎么回事(路由器不通电怎么办)

  • 抖音作品什么时间发容易热门(抖音作品什么时候投抖加最好)

    抖音作品什么时间发容易热门(抖音作品什么时候投抖加最好)

  • 爱奇艺点映是什么意思(爱奇艺电影点播券是什么意思)

    爱奇艺点映是什么意思(爱奇艺电影点播券是什么意思)

  • 小米9有实况拍照模式吗(小米9相机有没有实况)

    小米9有实况拍照模式吗(小米9相机有没有实况)

  • tencent 是什么文件

    tencent 是什么文件

  • 快手缴纳保证金能退吗(快手缴纳保证金是什么意思)

    快手缴纳保证金能退吗(快手缴纳保证金是什么意思)

  • 华为手机屏幕密码忘了怎么解开(华为手机屏幕密码怎么改)

    华为手机屏幕密码忘了怎么解开(华为手机屏幕密码怎么改)

  • 爱奇艺能不能投屏电视(爱奇艺能不能投屏到电视机上面看)

    爱奇艺能不能投屏电视(爱奇艺能不能投屏到电视机上面看)

  • airpods pro和2的区别(airpods pro和2的区别 延迟)

    airpods pro和2的区别(airpods pro和2的区别 延迟)

  • 电子客票行程单怎么取(电子客票行程单查询)

    电子客票行程单怎么取(电子客票行程单查询)

  • ipad分屏悬浮窗怎么关(ipad分屏悬浮窗口怎么开启)

    ipad分屏悬浮窗怎么关(ipad分屏悬浮窗口怎么开启)

  • 算法的时间复杂度定义(算法的时间复杂性)

    算法的时间复杂度定义(算法的时间复杂性)

  • 第一款智能手机什么时候出来的(vivo第一款智能手机)

    第一款智能手机什么时候出来的(vivo第一款智能手机)

  • huaweiMate 20的电池容量(华为mate20的电池容量)

    huaweiMate 20的电池容量(华为mate20的电池容量)

  • 全民k歌怎么导出音乐(全民k歌怎么导入自己的伴奏)

    全民k歌怎么导出音乐(全民k歌怎么导入自己的伴奏)

  • qq绿钻怎么取消自动付费(qq绿钻怎么取消显示)

    qq绿钻怎么取消自动付费(qq绿钻怎么取消显示)

  • Mac怎么设置提醒闹铃? Mac添加提醒事项的教程(macbookpro提醒事项)

    Mac怎么设置提醒闹铃? Mac添加提醒事项的教程(macbookpro提醒事项)

  • Linux中网络管理命令ipconfig与route的基本使用教程(linux网络管理实训总结)

    Linux中网络管理命令ipconfig与route的基本使用教程(linux网络管理实训总结)

  • Win11 Release 预览版 Build 22000.1879更新补丁KB5025298(附更新修复内容汇总)(window11预览版怎么样)

    Win11 Release 预览版 Build 22000.1879更新补丁KB5025298(附更新修复内容汇总)(window11预览版怎么样)

  • 应预缴税款如何计算?
  • 增值税普通发票和电子普通发票的区别
  • 怎样填写增值税普通发票
  • 销售货物和服务流程 事前检查单上
  • 企业收到劳务费发票账务处理
  • 企业付的快递费是扣增值税还是进入费用扣除
  • 公司与公司之间合作协议
  • 网银转账手续费标准
  • 企业用银行存款购买原材料
  • 结算本月应付职工工资40000元
  • 个税税费返还
  • 购入包装物
  • 加计扣除农产品包括哪些
  • 未开票收入怎么做账
  • 房地产企业税负率
  • 企业筹建期的工会金费怎么入账
  • 酒店固定资产明细表范本
  • 对公提回贷算收入吗
  • 免抵退税金额是啥意思
  • 财务预算业务制度有哪些
  • 权益净利率如何提高
  • 无形资产商标设计图片
  • macbookpro任务栏
  • 失控发票的企业怎么处理
  • 怎么关闭windows11自动更新
  • 垫资计入什么会计科目
  • 存货盘亏能否税前扣除
  • 金融企业存出保函的条件
  • 企业租房费用可以计入成本吗
  • 若依框架前后端分离手机号登录
  • 超过小规模纳税人标准能不转一般纳税人吗?
  • 合伙企业分配股票给合伙人
  • vscode插件vuter
  • vue组件元素设置滚动条高度
  • 注册资本与注册资金、出资额的区别
  • python2打包
  • 小企业汇兑损失
  • 购进原材料用于生产免税产品
  • 残疾人保证金如何做账
  • 如何做进项税额明细表
  • 第6章 分支语句和逻辑运算符
  • sql server中数据文件的扩展名是
  • 计提怎么理解
  • 合租物业费按人头还是按房间分
  • 发票红冲要去税务局吗
  • 核定征收一般纳税人进项是否可抵扣
  • 待报解预算收入怎么做分录
  • 进项税额不允许抵扣
  • 小额贷款公司ei
  • 房产税减按70%的政策
  • 建筑工程劳务分包,工伤责任承担
  • 公司出售自建厂房
  • 一般纳税人车辆租赁费的税率是多少
  • 公司社保委托代发银行是工资卡银行吗
  • 什么叫做差旅费
  • 原始凭证书写要求
  • centos6.8配置网络
  • 怎么删除win系统
  • win7修改sid
  • win7麦克风没声音怎么设置方法从计算机
  • Win10 RedStone 2预览版14936快速版开始推送
  • Win10 Mobile RS2预览版14926升级错误代码800703ed的解决方法
  • win10h2版本
  • win8.1开始菜单改win7
  • 硬盘安装fedora
  • javascript中的继承
  • from tkinter import
  • node发送短信
  • python 详细
  • js函数function用法
  • jquery模拟回车
  • unityui
  • jquery defaultvalue
  • javascript数据转换
  • 深入python3
  • 个人所得税完税证明网上打印
  • 烟台税务局举报电话号码
  • 诺诺发票怎样上报汇总
  • 南京政务服务中心
  • 汕头办理社保卡流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号