Chrome扩展开发基础教程(附HelloWorld)

1 概述

Chrome扩展开发的基础教程,代码基于原生JS+H5,教程内容基于谷歌扩展开发官方文档

2 环境

  • Chrome 88.0.4324.96
  • Chromium 87.0.4280.141
  • Brave 1.19.84
  • FireFox 85.0
  • WebStorm 2020.3.2
  • Manifest V3

3 开发环境准备

开发扩展建议使用WebStorm,推荐WebStorm的原因是能够补全,在设置中的Libraries中可以下载chrome的库,这样就能够补全了:

在这里插入图片描述

在这里插入图片描述

另一个建议使用的是VSCode,但是笔者目前没有找到让VSCode补全的方式,希望知道的可以在评论指出补充一下。

当然其实扩展开发并没有规定使用哪一个IDE,常用的Web开发IDE比如HBuilder也是可以的,看个人喜好了。

4 创建manifest.json

首先创建一个空白文件夹:

1mkdir FirstExtension 2cd FirstExtension

接着创建一个叫manifest.json的文件,直接在WebStorm中创建即可,文件内容如下:

1{ 2 "name": "First Extension", 3 "description": "This is my first extension", 4 "version": "1.0", 5 "manifest_version": 3 6}

打开浏览器进入管理扩展程序,并开启开发者模式,选择Load unpacked,打开刚才创建的FirstExtension文件夹:

在这里插入图片描述

这样就可以看到扩展了。

事实上最简单的扩展只需要一个manifest.json,来描述扩展最基本的一些属性以及行为,因此这样就算完成HelloWorld了。

5 添加弹出界面

现在扩展什么界面也没有,现在可以尝试着给扩展添加一个点击就弹出的界面,首先修改manifest.json,添加action

1{ 2 "name": "First Extension", 3 "description": "This is my first extension", 4 "version": "1.0", 5 "manifest_version": 3, 6 "action": { 7 "default_popup": "popup.html" 8 } 9}

在与manifest.json同级目录下创建popup.html文件:

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6</head> 7<body> 8 <h1>Hello World!</h1> 9</body> 10</html>

这样点击扩展就会弹出对应文字了:

在这里插入图片描述

6 添加图标

manifest.json中添加icons字段:

1{ 2 "name": "First Extension", 3 "description": "This is my first extension", 4 "version": "1.0", 5 "manifest_version": 3, 6 "action": { 7 "default_popup": "popup.html" 8 }, 9 "icons": { 10 "16": "icons/16.png", 11 "32": "icons/32.png", 12 "48": "icons/48.png", 13 "128": "icons/128.png" 14 } 15}

图标文件可以从文末的源码处获取,重新加载后就可以看到扩展的图标改变了。

图标一共有四个,16*16是扩展页面中显示的图标:

在这里插入图片描述

32*32是可选的,为了防止从48*48的大小中缩小造成失真,48*48是在扩展管理页面中显示的,例如:

在这里插入图片描述

128*128Chrome Web Store中显示的。

7 发布

最后一步是发布,扩展有两种安装方式,一种是通过本地安装,一种是通过Chrome Web Store安装,使用后一种方式的话,需要注册成为Chrome网上应用开发者:

在这里插入图片描述

这里为了方便就本地打包发布了,在插件管理页面选择Pack extension

在这里插入图片描述

选择包含了manifest.json的文件夹,在这里就是刚才创建的FirstExtension

在这里插入图片描述

点击打包后,会出现两个文件:

在这里插入图片描述

一个是crx,就是扩展的打包文件,一个是pem,创建新版本的扩展时需要使用。

浏览器中拖拽crx文件就可以安装了,一般来说Chrome/Chromium/Brave因为基于相同内核应该都不会出现问题,至于FireFox,可以参考一下文末的附录。

8 源码

9 附录:FireFox

FireFox目前最新版本(85.0)的扩展目前不支持Manifest V3,因此如果需要开发FireFox扩展,需要使用Manifest V2版本,也就是:

"manifest_version": 2

当然还有一些字段上的区别,具体可以参考这里的文档。

另外笔者测试了一下FireFox安装这个Demo扩展好像不能直接拖拽crx文件,需要打开一个叫about:debugging的链接,在设置中选择Load Temporary Add-on:

在这里插入图片描述

选择manifest.json文件即可安装。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

swap空间的增减方法

(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap