一:简述

  扩展是修改Web浏览器功能的代码位。它们使用标准的Web技术(JavaScript,HTML和CSS)以及一些专用的JavaScript API编写。其中,扩展程序可以向浏览器添加新功能或更改特定网站的外观或内容。下文将进行为Firefox创建一个简单扩展。该扩展程序只是从“https://www.baidu.com”或任何子域加载的任何页面添加一个红色的边框。

二:正文

  首先应创建一个新的目录,此次扩展创建的目录名为:example,并定位到该目录:

    mkdir example

    cd example

  在example目录下创建一个名为:manifest.json文件,该文件内容为:

    {

      "manifest_version": 2,

      "name": "example",

      "version": "1.0",

      "description": "The first example",

      "icons": { "48": "icons/border-48.png" },

      "content_scripts": [

        {

          "matches": ["https://www.baidu.com"],

          "js": ["example.js"]

        }

      ]

    }

  在该文件中manifest_versionnameversion是强制性的,并包含扩展的基本元数据。

  description可选。

  icons可选,显示扩展的图标。

  关键在于content_scripts告诉Firefox将脚本加载到URL匹配特定模式的网页中。在这种情况下,我们要求Firefox将一个名为“example.js”的脚本加载到从“https://www.baidu.com”或其任何子域提供的所有HTTP或HTTPS页面中。

  在example目录下建一个icons的目录,该目录下应该有一个名为:border-48.png的图片

  在example下建一个名为:example.js的文件,该文件内容为:

    document.body.style.border = "5px solid red";

  至此,一个简单的foxfire扩展已经完成。

三:Firefox添加扩展

  在firefox地址栏中输入:about:debugging;回车,点击“临时载入附加组件”如图:

  导入json文件;

最后效果。

四:总结

  以上只是一个简单的Firefox扩展的实例,Firefox扩展需要深入理解的东西还有很多,包括对数据包的拦截与处理等,

  以上为个人浅谈,如有不合理的地方请予指导。

WebExtensions小例的更多相关文章

  1. linux 命令小例

    xargs示例: ls |xargs -i mv {}  /opt find示例: find -mtime +n -name “*.avi” -type f -exec rm {} \; find - ...

  2. Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例

    Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例 一.在Eclipse下编译安装Hadoop插件 Hadoop的Eclipse插件现在已经没有二进制版直接提供,只能自己编译. ...

  3. 使用libcurl下载文件小例

    libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP……一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要 ...

  4. webpack -- 多页面简单小例

    有时单页面并不能满足我们的业务需求,就需要去构建多页面应用,以下为简单小例: entry:{ index:'./src/module/index/index.js', student:'./src/m ...

  5. [libpng]CMake+VS2015下编译libpng,及使用小例

    编译前的工作 在编译libpng前,需要把zlib编译好,并加载到编译环境里. CMake + VS2015 下编译zlib,及使用小例 下载与解压 libpng的官网是 http://www.lib ...

  6. HTML5基础小结(二)——标签小例

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1amlhaGFuNjI5NjI5/font/5a6L5L2T/fontsize/400/fill/I0 ...

  7. js入门学习~ 运动应用小例

    要实现的效果如下: 鼠标移入各个小方块,实现对应的效果(变宽,变高,移入透明,移出恢复)~~ (且各运动相互之前不干扰)  主要是练习多个物体的运动框架~~ --------------------- ...

  8. js中的冒泡排序以及实现一个数组中得最到最大的数字小例

    这其实是一个很简单的js就可以实现,当然一般情况就是利用for循环,从第一个跟第二个开始比较,根据大小交互位置,思路很简单. 也就是js中的冒泡排序 冒泡排序 时间复杂度为O(n^2),有两个优点: ...

  9. linux之C编程实战小例

    人生匆匆一趟,打不打酱油?怎么打?怎么打"质量好点的酱油"?由你决定.打酱油是一种态度,更是一种生活! 哈哈,事不关己不开口,专心一意打酱油! 请记住下面些许话: 不要一味的说别人 ...

随机推荐

  1. [JAVA]流控及超流控后的延迟处理

    流控检查(每半秒累计,因此最小留空阀值只能做到每秒2条): import java.text.SimpleDateFormat; import java.util.Date; import java. ...

  2. Delphi导出word

    //导出Wordprocedure TFrm_Computing.ExportWord;varwordApp, WordDoc, WrdSelection, wrdtable, wrdtable1, ...

  3. CentOS6.4 安装sftp

    1.打开命令终端窗口,按以下步骤操作.使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级. [root@ecs-3c46 ~]# ssh -v OpenS ...

  4. 我Java学习时的模样(三)

    读Java源码 平常使用Java的时候,那些集合类使用起来很顺手,但是有没有想过这些集合内部的实现原理是怎样的,它的添加移除都有哪些操作? 有了一些工作经验之后,必须要读一读Java包中的源码,需要知 ...

  5. Mybatis-动态SQL语句

    有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysq ...

  6. Windows加密API的层次

    Windows平台下的应用程序可以分为托管的.NET程序和本机的Win32(以及Win64)两大类..NET有着类似于JAVA的虚拟机和二进制码托管运行环境,提供了在不同Windows平台上的代码可携 ...

  7. Chrome Command API

    Chrome Command API 参考 Chrome开发工具已经强大得令人发指了,除了可通过UI操作的各种功能外,还提供了基于控制台的命令行方法,极大地方便了开发调试.现在就来领略下Chrome ...

  8. jqgrid 加载时第一页面只显示多少条数据

    function initGrid() { localGrid = jQuery("#tbList"); localGrid.jqGrid({ data: localData, d ...

  9. Splunk大数据分析经验分享

    转自:http://www.freebuf.com/articles/database/123006.html Splunk大数据分析经验分享:从入门到夺门而逃 Porsche 2016-12-19 ...

  10. node.js控制请求处理数量

    问题: 现在有一个接口,这个接口用到了无头浏览器,总之是一个比较消耗内存的接口,并发上来后,这个接口会把服务器内存榨干,导致服务器宕机.现在在不加机器的情况下,并发上来后我该怎么做既能处理掉所有请求又 ...