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

标签: 手把 开发 chrome | 发表时间:2011-03-31 23:13 | 作者:walkingp huangct
出处:http://www.cnblogs.com/

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里。

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

作者: walkingp 发表于 2011-03-31 23:13 原文链接

评论: 6 查看评论 发表评论


最新新闻:
· Android 的政策越来越紧缩,这不是玩笑(2011-04-01 11:06)
· Google——加不如减(2011-04-01 11:04)
· 传亚马逊正在研发近场通讯支付技术(2011-04-01 10:53)
· 如何在一款Win7主题中使用另一款主题音效(2011-04-01 10:52)
· Windows 8泄露下载(2011-04-01 10:51)

编辑推荐:编程是一种超能力

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

相关 [手把 开发 chrome] 推荐:

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

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

Chrome网页应用开发教程

- tiger - 互联网的那点事
发布时间:2011年2月1日. 发布源:How-Tos(OhBoard). 我花了10天时间开发了OhBorad,这个小巧的白板应用. 12月12日,我萌生了想法,12月22日我赚到了第一笔钱3.99美金. 所以在这里和大家分享一下这个开发指南. 如果你打算自己做Chrome网页应用,那么你可幸运了.

开发过快 Firebug开发者跳槽到Chrome

- 尉铧 - cnBeta.COM
据CNET报道,火狐浏览器扩展Firebug程序员John J.Barton被Chrome开发小组聘请,将不再开发firebug,转为Chrome浏览器调试. John J.Barton于7月17日写到,“本周一,我开始在谷歌Chrome浏览器小组的新一代网络开发工具团队工作. 并且不再为火狐浏览器提供纠错调试扩展firebug”.

中文版 Chrome 扩展开发指南上线

- ArBing - 谷奥——探寻谷歌的奥秘
感谢 Jay Wang 的爆尿. 360极速浏览器一批工程师用业余时间完成了Chrome extension developer's guide全部翻译工作,放在360极速浏览器应用开放平台的开发文档里供大家参考学习. Chrome扩展开发者指南共有6大章节:. 感谢360极速浏览器对Chrome开发中文资料的贡献,希望能帮到更多的Chrome开发者,制作出更多更好的Chrome扩展.

Google Chrome扩展开发指南全部翻译工作完成

- beralee - cnBeta.COM
感谢金山说下次我们翻译啥?的投递. 360极速浏览器一批工程师用业余时间完成了Chrome extension developer's guide全部翻译工作,放在360极速浏览器应用开放平台的开发文档里供大家参考学习.

Chrome和Firefox联手开发跨浏览器Web App应用

- pansin - Solidot
whuhacker 写道 "Mozilla曾经计划发布一个开放的跨浏览器Web App Store,使得Web应用可以运行于Firefox、Chrome、IE、Safari、Opera等多种浏览器. 现在,Chrome正和Firefox联手推进这项计划. 一个名为Web Intents的框架正在开发以帮助Web Apps更加顺畅地运行.

Stash来啦!我开发的第一个Chrome扩展

- plidezus - i&#39;m Chao-吼吼在这
很久很久很久很久没写博客啦,难得写一次博客,居然是来发布产品的. 言归正传,我和一个朋友(强生生)打磨的Chrome扩展——Stash来啦. 绝对是你需要的工具,请耐心看完下面的内容. Stash是一个以全新的方式储存和管理标签页的chrome扩展程序. 从构思到开发我们花了不到一个月的时间,而且都是在业余时间进行的.

Chrome 开发工具支持远程调试

- Leo Pay - 谷奥——探寻谷歌的奥秘
Google Chrome 开发工具(简称 DevTools)前端界面是作为 HTML + CSS + JavaScript 的 web 应用实现的. 它采用序列化的信息通道与被审查页面通讯. 开发团队建立这个序列化异步交互通道是为了将 DevTools 前端移出被审查页面的进程. 但实现了才发现,甚至能将 DevTools 前端移出浏览器运行.

Google称正在针对Lion新特性努力开发Chrome

- Joe - cnBeta.COM
谷歌Chrome浏览器高级副总裁桑达・皮查伊(Sundar Pichai)周四表示,谷歌正在升级Chrome以更好支持苹果新款Mac OS X Lion系统. 皮查伊表示,尽管Chrome技术上可以在Lion系统上运行,但是在执行滚动条、手势导航和全屏模式时还存在一些小问题. 部分漏洞已经在Chrome Canary build分支中得到修正,更强的升级很快就会推出.

为豆瓣爱好者开发的 Chrome 插件:豆瓣一点

- bridge - 谷奥——探寻谷歌的奥秘
豆瓣一点这枚Chrome扩展适用于将豆瓣的电影和书籍评价作为是否入手重要依据的朋友,作者说他自己在VeryCD上看到新的电影和美剧都要到豆瓣上看看再决定下载. 作者开发这个扩展也是为了方便自己上网时随时查询,故取名“豆瓣一点”,寓意“点一下就可以豆瓣一下了”. 豆瓣搜索:在网页中选中一段文字,在豆瓣中搜索.