一天学会Chrome插件开发

开门见山:一个chrome插件会包含哪些文件及文件夹

D:.
│  manifest.json
│
├─html
│      index.html
│
├─images
│      icon-128.png
│      icon-16.png
│
├─scripts
│      background.js
│
├─styles
│      main.css
│
└─_locales
    ├─en
    │      messages.json
    │
    └─zh_CN
            messages.json

简单说明一下:

  • html:存放html页面
  • images:存放插件图标
  • scripts:存放js文件
  • styles: 存放样式
  • _locales: 存放多语言文件
  • manifest.json:一些关于插件的元数据,作为chrome入口文件

看目录结构,像不像一个网站?Bingo! Chrome插件就是一个网站类的应用,它是用html、javascript、css组成的一个webapp; 相比于通常的webapp, Chrome插件还可以调用更多浏览器层面的api,包括书签、历史记录、网络请求拦截、截获用户输入等等。(PS:插件不要随便乱装哦,很危险滴!)

重点说一说这个文件:manifest.json

如前所述,它包含了一些插件的元数据,作为chrome的入口文件,可以理解为插件的程序清单,那么它到底做了什么事情呢?
结合示例,我们细细来看:

{
  "manifest_version": 2, // 清单版本号,建议使用 版本 2,版本 1 是旧的,已弃用,不建议使用
  "name": "chome-plugin", // 插件名称
  "version": "1.8.6",  // 插件版本
  "description": "This is an extension for your chrome", // 这里写些废话,举个栗子,‘应产品要求,杀个程序祭天’
  "icons": {
    "16": "images/custom/16x16.png",
    "48": "images/custom/48x48.png",
    "128": "images/custom/128x128.png"
  },
  //browser_action和page_action只能添加一个
  "browser_action": { //浏览器级别行为,所有页面均生效
    "default_icon": "images/custom/16x16.png",//图标的图片
    "default_title": "Hello ELSE", //鼠标移到图标显示的文字 
    "default_popup": "html/popup.html" //单击图标后弹窗页面
  }, 
  "page_action":{ //页面级别的行为,只在特定页面下生效 
    "default_icon":{
        "24":"images/custom/24x24.png",
        "38":"images/custom/38x38.png"
        },
    "default_popup": "html/popup.html",
    "default_title":"Hello ELSE"
  },

  // 可选
  "author": "ELSE TEAM",
  "automation": "...",   

  "background": {
    "scripts": [
      "scripts/background.js",
      "scripts/devtools-page.js"
    ]
  },
  "devtools_page": "html/devtools-page.html",

  // 定义对页面内容进行操作的脚本
  "content_scripts": [
    {
      "js":["js/else-insert.js"],
      "css": ["css/else-insert.css"],
      "matches":["<all_urls>"] // 只在这些站点下 content_scripts会运行
    }
  ],
  // 数组,声明插件所需要的权限,这里就是很危险的存在了,想干坏事的你是不是很激动!
  "permissions": [
    "cookies",
    "http://*/*",
    "management",
    "tabs",
    "contextMenus"
  ]
}

开发示例

代码来了:https://github.com/StevenX911/share/tree/master/source-read/chrome-plugin/no-socializing

2017-08-29-articlex1.png

加载并运行插件

  • 在您的浏览器中访问 chrome://extensions(或者单击多功能框最右边的按钮:打开 Chrome 浏览器菜单,并选择工具(L)菜单下的扩展程序(E),进入相同的页面)。

  • 确保右上角开发者模式复选框已选中。 Ensure that the Developer mode checkbox in the top right-hand corner is checked.

  • 单击加载正在开发的扩展程序…,弹出文件选择对话框。

  • 浏览至您的扩展程序文件所在的目录,并选定。

您也可以将扩展程序文件所在的目录拖放到浏览器中的 chrome://extensions 上加载它。

如果扩展程序有效的话,它将被加载并且立刻处于活动状态!如果无效的话,页面顶部将显示错误消息,请纠正错误再重试。

打包发布

开发插件的目的是为了贡献自己的一点技术力量,为人类的永恒与和平略尽绵力,当然这都是胡扯!大部分的开发者都想赚些个零花,不过首先你得向google上交五美金!

注册开发者账户自不必说,墙都翻不出去的程序员当不了好厨子。

点击链接https://chrome.google.com/webstore/developer/dashboard/进入google开发者控制台,你会看到下图,提示交5美元注册开发者。

2017-08-29-articlex.png

在输入信用卡信息环节,注意选香港,然后再地址中加上“转大陆”字样就可以。

2017-08-29-articlex2.png

注册开发者身份成功后,将webpp文件打包提交

2017-08-29-articlex3.png

发布成功后效果如下图

2017-08-29-articlex4.png

常用插件推荐

更多

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,277评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,777评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,946评论 0 245
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,271评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,636评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,767评论 1 221
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,989评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,733评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,457评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,674评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,155评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,518评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,160评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,114评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,898评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,822评论 2 280
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,705评论 2 273

推荐阅读更多精彩内容