美文网首页让前端飞
火狐扩展的文件结构

火狐扩展的文件结构

作者: Spring_Bear | 来源:发表于2018-03-03 22:45 被阅读18次

之所以对这个问题感兴趣,是因为打算用火狐的插件机制来实现端信息跳变的客户端的,借助插件来改变火狐客户端的访问IP和端口。

原先有个插件版本,是直接把功能都写在插件里了,那个时候火狐还支持add-on形式的插件,nodejs的机制能实现的功能还蛮多。

现在这一版,需求多了,写在插件里是实现不了,而且火狐插件现在统一只能用webExtension了,效仿谷歌那一套,好像以后的插件在各大浏览器(火狐,谷歌,edge)间稍微一改,能通用了。这样一来,方便了,安全了,当然牺牲的就是能实现的功能了。

所以这一版是打算写成代理,然后用这个webExtension来执行本地文件,这个还是可以实现的。

原本对这个webextension的形式还是比较讨厌的,毕竟要增加工作量,但是在学习了之后,我觉得它的结构和代码逻辑很清晰,蛮喜欢。

文件结构

我举一个简单的栗子,MDN上的一个插件notify-link-clicks-i18n,作用是记录下网页的点击事件,当点击一个链接时,它会给出一个通知像是“you clicked 'your link' ”这种格式。看下它的文件结构:


Screenshot from 2018-03-03 22-28-06.png

icons是用到的图标,locales是不同语言的转换。manifest.json是配置文件,README.md是说明。我觉得最好的地方是background-script.js和content-script.js所代表的不同的含义。

background-script.js的作用,我引用MDN说明文档:

扩展常常需要独立于任何浏览器窗口或特定网页来维持一种长期的状态或者执行长期的操作。background scripts的存在就是为了这个。

而content-script.js的作用:

使用content scripts来访问和操作页面。Content scripts会被加载到页面中并运行在页面的特定环境下。
Content scripts是由扩展提供的脚本,与页面本身的脚本以及标签中的脚本是不同的。

两种不同的脚本类型分工明确,而且两者之间可以进行通讯,从而使得contentscript也可以使用backgroundscript中的web api来实现一些强大的功能,我觉得这种设计简洁而且很舒服,有种莫名的好感。

参考

参考1

相关文章

  • 火狐扩展的文件结构

    之所以对这个问题感兴趣,是因为打算用火狐的插件机制来实现端信息跳变的客户端的,借助插件来改变火狐客户端的访问IP和...

  • C中将结构体写入文件及读取

    需要导入的头文件 写入结构体 假设有结构体: 结构体写入文件的方法: 读取文件中的结构体 知识扩展 函数fopen...

  • tp学习基本控制器和视图

    1 文件结构 application 主要操作目录 extend 扩展 public 入口文件 runtime 运...

  • Chrome 扩展程序

    Chrome 扩展程序添加 chrome 扩展从结构来看,扩展像是一个配置文件(manifest.json),加一...

  • JAVA使用DOM方式来解析XML文件

    了解XML文件 xml表现:以.xml为文件扩展名的文件xml文件的结构为树形结构节点名区分大小写在java程序中...

  • 20170620基础知识-编码规范

    1、命名规范 大驼峰法:常量、枚举成员、类、结构体、枚举、协议、文件名、扩展文件(原始类型名+扩展名) 小驼峰法:...

  • 六、Java眼中的XML-文件读取

    1、什么是XML? 表现:以".xml"为文件扩展名的文件 存储:树形结构 2、在Java程序中如何获取xml文件...

  • centos基础知识

    文件结构 centos里只有文件和目录的区别,不像window里有.exe .txt这样的扩展名,所有文件都是一样...

  • Java中XML文件的读取与写入

    表现:以 “.xml”为文件扩展名的文件; 存储:树形结构; 用途:存储以及传递信息;利用相同的XML文件将不同的...

  • Jni教程(一)—Linux下jni调用

    简介 开发环境 代码结构 .h文件生成 编译生成so文件 运行 扩展(有包名的情况) 开发环境 centos 6....

网友评论

    本文标题:火狐扩展的文件结构

    本文链接:https://www.haomeiwen.com/subject/rhyxfftx.html