一、前言
我第一次接触到浏览器插件,还是一个叫做 油猴 的浏览器插件,提供了大量的功能,其中让我印象最深刻的功能,就是它可以把github的页面直接改掉,添加了很多自己的按钮和功能,那真是在我小小的内心里产生了大大的震撼,当时一直觉得,html资源该怎么样输出就应该怎么样输出,不给任何修改和篡改的机会,当然直接去篡改请求啥的不算。而尤其可以自己改造页面,那真是泰酷啦~
后来随着知识的储备,才知道html只是一个约定好的文档类型,如何去解释,是由浏览器说了算的,当然,我们都要遵循w3c的协议,去按照标准去给他渲染。那这就说的通了,既然一切解释权归浏览器所有,那在渲染前后中,去做一些额外的操作,那也不是不行。而比较常用的方式,就是用浏览器插件的方式,去做一个扩展。
二、了解浏览器插件
官网地址:https://developer.chrome.com/extensions/
当然,一般人是访问不了的,需要一些手段。
首先什么是浏览器插件,我们打开chrome,在右上角三个点可以看到 扩展程序>管理扩展程序
点进去之后,就可以看到所有我们已经安装上chrome的插件了
安装插件的方式有三种:
- ctx 文件,是谷歌浏览器官方的安装插件的格式,可以通过密钥去打包一个路径生成,一般是生产环境使用
- zip 文件,chrome 支持拖入一个zip包,由chrome 去解压并注册进去一个插件,但是这个zip文件的根目录下,一定要包含 manifest.json 文件,这个我们后面会讲,他是一个谷歌插件的标识文件,也是我们的插件去申请浏览器能力、权限,定义的一个非常重要的文件
- 解压一个本地文件夹,这种其实和zip文件的方式大同小异,只是chrome 回去读取一个我们本地的资源路径,同样去寻找我们文件夹下的manifest.json 文件。
三、开发目录结构
其实上文中我们已经说到了,开发插件最重要的一个文件就是根目录下的 manifest.json,只要有他,就可以认为我们在开发一个浏览器插件,那我们也不能只拥有一个配置文件吧,好,上成品!
这个是一个比较全的(相对)谷歌浏览器插件,可以先大概预习一下:
- background.js: 后台运行脚本,在打开浏览器插件时,开始运行
- content.js: 页面侵入脚本,可以在指定的页面去篡改页面内容,文章开头说的效果就是用它实现的
- popup.html:弹出框页面,指的是谷歌浏览器右上角那个插件的地方,点一下你的插件可以弹出一个小框
- options.html: 完整配置页面,可以直接在浏览器中跳转到一个完全由你构建的页面
好了,大致的一些页面作用就是这些,那么,只要叫这个名字,他就可以产生这个效果了么?
当然不是!
那么怎么才能让他实现这些功能呢?
下集预告
manifest.json 文件分析