Chrome的扩展程序很多,也很容易入门,可以来简单实现一下

看看 官方文档 或者翻译的文档:百度,慢慢就能实现出一个扩展程序来

每个扩展程序应用一般会包含:

  • 一个manifest清单文件
  • html文件
  • js文件
  • 其他文件等

可以看到,其实结构如同一般的页面,有共通之处。

一、了解Chrome扩展程序

Chrome扩展程序商店地址为:https://chrome.google.com/webstore/category/extensions?hl=zh-CN

访问Chrome浏览器中已安装的扩展:chrome://extensions/

可以看到一些拓展程序的基本信息

一般来说,安装扩展程序可以进行在线安装的方式,但在离线环境或内网机环境下,需要安装扩展程序,要怎么办呢

crx文件

crx文件其实就是扩展程序包,可直接将其拖动到上述扩展程序列表页面,即可安装

在windows系统下,可以在以下文件路径访问相应的扩展程序

最后这个图中的文件,其实就是扩展程序的源码了

在扩展程序列表页中点击打包扩展程序,选择相应的程序目录,就可以打包出一个程序包

.crx文件就是我们要的扩展程序包了,将其拖动到页面,即可安装。 .pem是密钥文件

二、创建Chrome扩展程序

由上述知晓了扩展程序的大致信息,要创建一个扩展程序,也不外乎是创建一个项目,依据一定的规则编写逻辑后再打包安装

接下来就把之前写的简易计算器弄成一个扩展程序

看看博客园下方有几个广告,索性顺便用扩展程序移除页面上的广告吧

扩展程序需要一个manifest清单文件,提供有关应用的各种信息

{
"manifest_version": 2,
"name": "my-calculator",
"description": "A simple calculator",
"version": "0.0.1", "permissions": [
"tabs",
"http://www.cnblogs.com/"
], "browser_action": {
"default_icon": "icons/icon_active.png",
"default_title": "Calculate it",
"default_popup": "calculator.html"
}, "content_scripts": [{
"matches": ["*://www.cnblogs.com/*"],
"js": ["js/jquery.js", "js/content.js"]
}]
}

这就是需要的清单文件了,定义了程序的基本信息,这些字段的作用就自行去 文档 查看吧

文件目录结构为

计算器的代码,之前那篇文章有了,这里就不贴了

要移除博客文章下的广告,是操作页面,所以应该在content_scripts文件里操作,即这里的content.js

$('div[id^="ad_"]').each(function() {
var $this = $(this);
console.log('remove', $this.attr('id'));
$this.remove();
});

记得先在manifest中配置好permissions的页面访问权限

文件已经准备完毕,现在进行程序的打包

打包方式类似上述的方法,打包成功后拖进来安装就行了

可以看到计算器已经在扩展程序之中

再看看博客文章下的广告,已经被清除了

三、发布Chrome扩展程序

自己的Chrome扩展程序写好之后,可以发布到商城之中

这篇文章 讲得挺好,就不多说了

编写Chrome扩展程序的更多相关文章

  1. 【转】编写Chrome扩展程序

    Chrome的扩展程序很多,也很容易入门,可以来简单实现一下 看看,慢慢就能实现出一个扩展程序来 每个扩展程序应用一般会包含: 一个manifest清单文件 html文件 js文件 其他文件等 可以看 ...

  2. Chrome扩展程序的二次开发:把它改得更适合自己使用

    我当然知道未经作者允许修改别人程序是不道德的了,但作为学习研究之用还是无可厚非,这里仅供交流. 一切都是需求驱动的 话说某天我在网上猎奇的时候无意间发现这么一款神奇的谷歌浏览器插件:Extension ...

  3. Web 开发人员必备的12款 Chrome 扩展程序

    之前已经分享过一些帮助 Web 开发人员和设计师的 Chrome 扩展,这次我们继续展示一组很有用的 Chrome 应用程序.这些免费的 Chrome 应用程序可以简化您的工作流程,为了加快您的工作流 ...

  4. 了解Chrome扩展程序开发--摘抄

    了解Chrome扩展程序开发 2018-01-11 边城到此莫若 鸡蛋君说前端 首先,我尝试来用简单几句话描述一下Chrome扩展程序: Chrome扩展主要用于对浏览器功能的增强,它强调与浏览器相结 ...

  5. 谷歌应用商店chrome扩展程序和APP的发布流程

    互联网上有很多大牛,他们再工作中需要一些难题,再找到解决办法后,如果会使用js的话,大多数人就可以自己动手写一个chrome插件,而且非常容易.开发人员都喜欢与大家分享自己的成就!google是一个全 ...

  6. 安装Chrome扩展程序xpath

    最近工作用到xpath,直接从浏览器复制下来路径时常会出错而且长度很长,于是我想到之前用过的一款chrome插件,可以直接编写xpath语句,并实时出现解析出的结果,检验xpath语句是否编写正确.效 ...

  7. chrome扩展程序开发

    首先,明确两个概念的区别:chrome扩展程序和Web Apps.具体参考:http://www.chromi.org/archives/10106 本文只讨论chrome扩展程序. 最好的开发教程莫 ...

  8. Google Chrome 扩展程序开发

    根据公司的规定,每月八小时,弹性工作制.所以大家平时来的不太准时,如果有事,下班也就早些回去了.所以一个月下来工作时间可能不够,但是公司的考勤日历是这样的: 除了请假和法定节假日外,其他样式显示都是一 ...

  9. 解决高版本 Google Chrome 扩展程序强制停用问题 -摘自网络

    1]前往这里下载你喜欢的语言的组策略模板 后缀为.adm (其他的文件自己看 https://docs.google.com/viewer?a=v&pid=sites&srcid=Y2 ...

随机推荐

  1. Couchbase N1QL

    Couchbase的 N1QL已经DP4了,在官方的文档中,Select * From like-table 这个like-table实际上指的是Couchbase中Bucket,那么对于早起版本Co ...

  2. 我的ORM之三 -- 更新

    我的ORM索引 更新语法 var 影响行数 = dbr.表.Update(实体).Where(条件).Execute(); 实体类型: 更新的实体类型和添加的实体类型一样,有三类: 1. 任何C#类. ...

  3. FusionCharts简单教程(八)-----使用网格组件

            有时候我们会觉得使用图像不够直接,对于数据的显示没有表格那样直接明了.所以这里就介绍如何使用网格组件.将网格与图像结合起来.网格组件能够将FusionCharts中的单序列数据以列表的 ...

  4. 十进制数转化成二进制后包含一的数量(c++)

    #include <iostream> using namespace std;int func(int x){    int count=0;    while(x){          ...

  5. JS数组的concat、push等方法,操作的是地址指针,而非内存操作

    var a = [{x:1}, {y:1}, {z:3}]; var b = a.concat(['gg', 'ff']); var c = []; c.push(a[1]); console.log ...

  6. 为什么说Java中的随机数都是伪随机数?

    什么是伪随机数?  1.伪随机数是看似随机实质是固定的周期性序列,也就是有规则的随机. 2.只要这个随机数是由确定算法生成的,那就是伪随机,只能通过不断算法优化,使你的随机数更接近随机.   (随机这 ...

  7. 启发式算法(Heuristic Algorithm)

    背景: 李航的<统计学习方法>一书中提到:决策树算法通常采用启发式算法,故了解之 问题解答: 时间有限,这里也只是将算法和启发式算法的区别和简单发展摘录如下: 一.算法和启发式方法之间的差 ...

  8. Redis的介绍及使用实例.

    本文就来讲一下Redis安装的方法和Redis生成主键的优点以及和其他几种方式生成主键的对比. 1,Redis安装首先将Redis的tar包拷贝到Linux下的根目录 然后解压到redis文件夹下:( ...

  9. Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic

    Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic 1.1. ThreadLocal 设计模式1 1.2. ...

  10. Atitti 数据库事务处理 attilax总结

    Atitti 数据库事务处理 attilax总结 1.1. 为什么要传递Connection?1 1.2. 两种事务处理方式,一种是编程式事务处理;一种是声明...2 1.3. 事务隔离级别 2 1. ...