转载:http://www.cnblogs.com/walkingp/archive/2011/03/31/2001628.html

Chrome的更新速度可以说前无古人,现在我每天开机的第一件事就是打开Chrome检查是不是有了新版本。界面清爽、操作人性化、网络备份资料 和快速的启动速度令我爱不释手,还有它拥有众多的扩展程序,相对于firefox的插件来说,数量上和质量上稍显不足,但相信chrome将会很快在扩展 上超越firefox,firefox上内存占用上实在不令人满意,也许我使用firefox的一个原因就是因为firebug,不过相信chrome平 台的类firebug插件也会很快出现。

Chrome的扩展开发十分简单,我们只需要掌握web开发的htm+CSS+Javascript,就能很快开发出自己的扩展。

你需要了解的内容

在开发前首先要掌握一些基础知识。

1、Chrome扩展文件

Chrome扩展文件以.crx为后缀名,在Google Chrome扩展官方网站下载扩展时,Chrome会将.crx文件下载到Chrome的Application Data文件夹的User Data\Temp下,一般是C:\Documents and Settings\User\Local Settings\Application Data\Google\Chrome\User Data\Temp,安装完成或者取消安装,该文件就会被删除。.crx实际上是一个压缩文件,使用解压文件打开这个文件就可以看到其中的文件目录,下图中是“关灯看视频”扩展的截图:

因此可以认为,我们实际上就是写一个Web应用,然后将按照Chrome的规定将一个快捷方式放在Chrome工具栏上。

2、Browser Actions(扩展图标)

把Browser Actions翻译成扩展图标不是很准确,但它的功能就是把你的应用显示在Chrome工具栏上。我们在上面看到一个文件manifest.json,就 是使用这个文件来把相应的图标和其他参数注册到Browser Actions。比如下图中就是EverNote的扩展图标。

3、Page Actions(地址栏图标)

如果你熟悉一些Chrome插件的话,你一定会发现有些扩展的图标不是显示在地址栏的右边,而是显示在地址内部右方,这就是Page Actions地址栏图标。

可以看出上面中有三个Page Actions,图中我标出的是Chrome添加书签,现在你就会发现其实这个也是Chrome的扩展,只不是它是直接内置在Chrome的。

Page Actions与Browser Actions的区别就是Page Actions不是随时都是显示的,必须在特定的页面中这个功能才能使用。因此在开发中注意:如果不是全部页面中都能使用的功能请使用Page Actions方式。

4、popup弹出窗口

popup属于Browser Actions,当点击图标时出现这个窗口,可以在里面放置任何html元素,它的宽度是自适应的。当然,这个弹出窗口不会被Chrome拦截的:)

如下图中是evernote的popup窗口:

5、Background Pages后台页面

这个窗口不会显示,它是扩展程序的后台服务,它会一直保持运行。比如在一些需要数据保存程序中,如果当前用户关闭popup,就需要Background Pages来进行相应的操作。

自己动手做一个

我们以一个简单的任务管理程序来一步步讲解。

上图是界面实现,我们首先完成界面的显示部分,首先建立一个新文件夹,以扩展应用的名称为标题,我们这里的应用叫做MyTaskList。然后把找一个图标文件,放到文件夹中,也可直接右键下载我的这个图标:

图标文件不要小于19px*19px,但最好也不要超过这个尺寸,虽然大图它会自适应,但会使得应用文件变大。然后完成和未完成状态的两个图标放到资源文件中,可以建立任意文件夹放进去,因为CSS文件把定义它们的路径。

建立manifest.json来定义我们程序配置:

  "name": "MyTaskList"
  "version": "0.9.0"
  "description": "Management my everyday's task lists."
  "browser_action": { 
    "default_icon": "icon.png" ,
    "default_title": "My Task List",
    "default_popup": "popup.html"
  
}

其中name代表应用程序名,version代表版本号,description代表功能描述。这些在安装扩展后就能看到,见下图:

browser_action代表扩展图标段显示,它会定义图标地址、标题(也就是鼠标悬停提示)和默认的popup页面。我们这里定义的popup页面为popup.html。

接下来开始定义popup.html显示,它不需要使用<html>、<head>和<body>标签,可以直接写上样式、脚本和html。我们的popup.html源码为:

<style type="text/css">
*{margin:0;padding:0;}
body{color:#333;overflow: hidden;margin: 0px;padding:5px;background: white;font-size:12px;}
img{margin:0 4px;}
#addItemDiv{color:#ccc;}
.hide{display:none;}
.show{display:block;}
.taskItem{cursor:pointer;}
input{width:100%;}
label.on{width:12px; display:inline-block; height:12px; background:url(images/bg_task_on.gif) no-repeat 0px 2px;}
label.off{width:12px; display:inline-block; height:12px; background:url(images/bg_task_off.gif) no-repeat 0px 2px;}
</style>
<div id="newItem" class="gray">添加新项</div>
<div id="addDiv" class="hide"><input type="text" id="txtTitle" /></div>
<div id="taskItemList"><div class="taskItem"><label class="on"></label><span class="taskTitle">新任务</span></div><div class="taskItem"><label class="off"></label><span class="taskTitle">已完成任务</span></div>
</div>

打开预览,样子就已经出来了:

这样我们文件就已经建立完成,文件列表如下:

现在就可以先尝试把它打包装到自己的Chrome里。

首先打开Chrome-工具-扩展程序,展开开发人员模式,打到“打包扩展程序”按钮:

点击“打包扩展程序…”,弹出打包选择文件窗口,在扩展程序根目标中找到我们建立的文件夹,私有密码文件第一次不用选择:

点击确定,它会在根文件夹同一级生成MyTaskList.crx和MyTaskList.pem,MyTaskList.pem是程序签名文件, 以新版本的开发中还需要这个文件,不要删除它。把MyTaskList.crx拖进Chrome窗体内,就会把这个应用MyTaskList安装在 Chrome里。

我们的这个简单的模型就能看到效果了,下一节我们就会完善其中的代码。

转载于:https://www.cnblogs.com/huangcong/p/3531723.html

黄聪:360浏览器、chrome开发扩展插件教程(1)开发Chrome Extenstion其实很简单相关推荐

  1. 360浏览器、chrome开发扩展插件教程(2)为html添加行为

    上一节我们已经讲了Chrome扩展的基础知识,并构建了基础的html,这一节我们将就html DOM添加部分添加脚本,即脚本在我们的popup页面中进行的操作,页面所产生的变化. 正常情况下数据处理加 ...

  2. Chrome浏览器录屏扩展插件

    Chrome浏览器录屏扩展插件,可以录制网页操作或者桌面操作.生成MP4 Loom https://chrome.google.com/webstore/detail/loom-video-recor ...

  3. axure html 360安装扩展,win10系统360浏览器添加Axure扩展的操作方法

    win10系统360浏览器添加Axure扩展的操作方法? 很多win10用户在使用电脑的时候,会发现win10系统360浏览器添加Axure扩展的的现象,根据小编的调查并不是所有的朋友都知道win10 ...

  4. axure html 360安装扩展,小编搞定win7系统360浏览器添加Axure扩展的设置方案

    经常使用电脑的朋友会发现win7系统360浏览器添加Axure扩展的问题比较常见,如今就有用户反映在使用电脑的时候遇到win7系统360浏览器添加Axure扩展的情况不知怎么解决,于是我就给大家整理总 ...

  5. 360浏览器 Adobe Flash Player插件怎么开启

    360极速浏览器使用时间长,打开网站较多的时候,容易出现打开速度缓慢的情况,可以停用浏览器的Adobe Flash Player插件,有一定提升速度的作用.但是系统停用了flash插件,会影响有些网站 ...

  6. 手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单

    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 参考地址为:手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单

  7. 为 Visual Studio 2010 开发扩展插件

    之前看到有国外的大神开发了一些非常好玩的 Visual Studio 扩展插件,觉得非常有意思,自己也参考了别人的代码做了一个插件. 首先需要安装 Visual Studio SDK ,安装不需要其它 ...

  8. Chrome视频下载插件–Video Downloader for Chrome

    今天为大家推荐一款非常好用的Chrome浏览器网页视频下载插件–Video Downloader for Chrome. 它是一款专为Chrome浏览器用户打造的简单好用的网页视频下载插件.插件安装后 ...

  9. 如何才能不看知乎广告?手机浏览器安装Edge扩展程序教程

    title: 如何才能不看知乎广告?手机浏览器安装Edge扩展程序教程 tags: 知乎 简书 掘金 categories: 极客 知乎App的广告真的是越来越多了,问题与问题之间插广告,每个回答必插 ...

最新文章

  1. vue3.0环境搭建
  2. CouchDB 简单HTTP接口使用说明
  3. 【更新指南】Aspose.CAD for Java更新至v19.5版本,实施导出的“警告”通知机制!...
  4. 文本比较算法Ⅴ——回顾贴,对前面几篇文章的回顾与质疑
  5. 说几个著名的死循环:
  6. php输出pre自动换行,解决 html pre 标签的内容自动换行的问题
  7. 史上最全JS表单验证封装类
  8. C++类中成员变量的初始化有两种方式
  9. python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑
  10. 浅谈C++中内存分配、函数调用和返回值问题
  11. Basic64 编码解码
  12. Linux内核 eBPF基础: 探索USDT探针
  13. SharePoint 上传附件
  14. extjs grid显示html,Extjs grid column里添加button等html标签,并增加点击事件
  15. Spring AOP 实现用户权限验证
  16. Hibernate 拦截器 SQL语句提交前 更新表公共字段
  17. Spring Boot 知识笔记(集成zookeeper)
  18. C++STL优先队列详解及练习
  19. 【Python】基于Python的行政区划编码字典
  20. 清理windows10系统垃圾文件 bat批处理命令(进阶版)

热门文章

  1. 开课吧:教你认识C++基本程序
  2. docker 错误:Error response from daemon: cannot stop container: connect: connection refused: unknown...
  3. linux系统安全加固基础篇1
  4. 智能语音市场有多大? 阿里巴巴将如何破局后来者居上?
  5. Mysql 数据库学习笔记04 函数
  6. SGI版本空间配置器
  7. EF框架step by step(1)—Database-First
  8. JS来推断文本框内容改变事件
  9. 循环变量到底应该使用int还是unsigned int?
  10. JSP内置对象实现表的增删查改