chrome插件技术开发总结
这也是一个总结贴,关于最近一个月来利用空余时间写的chrome插件的方方面面。
12月初第一个周六上午在浏览豆瓣时心血来潮想写chrome插件,因为之前有在豆瓣为网页写一些零碎的JS脚本(豆瓣是内置使用jquery的),来实现一些特殊的比如“只看楼主”、“批量上传/下载图片”等等之类的JS脚本,在初略的读了下chrome插件的开发文档的getting start tutorial以后,决定把之前写的那些JS脚变直接变成插件里的某段程序,于是开始研究chrome插件机制及相关的API。
自己写的豆瓣精灵插件google code地址:http://code.google.com/p/douban-demon/,可以通过svn下载全部源代码。包括豆瓣精灵和Rss Snack两个插件,其中前者一直有在慢慢更新,而后者是在一次大学同学技术讨论RSS相关时做的一个快速DEMO来谈插件实现的技术可能性,暂无更新了,不过这个插件使用到了jqueryUI和定制chrome插件鼠标右键的功能,具有一定的参考价值。
以下是chrome插件技术的一些tip总结,更多内容参考官方文档。
关于manifest.json
manifest.json故名思义,是用来管理整个插件的核心配置文件。包括插件的权限设置、名字、版本号、以及所有用到的资源,都需要在这里面指定,下面是豆瓣精灵的manifest.json:
{ "name" : "豆瓣精灵", //extension名称 "version" : "1.6.0", //版本号(自动更新时需要用到) "update_url": "http://douban-demon.googlecode.com/svn/updates.xml", //自动更新时的对比配置文件 "description" : "【豆瓣精灵】有什么问题或意见或建议,请联系russell.liuyi@gmail.com,或豆瓣ID:http://www.douban.com/people/3811658/", "options_page": "html/options.html", //选项页面。可以在扩展程序——选项里访问到的 "permissions": ["tabs", "notifications","http://*/*", "https://*/*"], //插件访问权限,tabs是指打开的标签页,notifications是指桌面弹出窗口,其它两个是可以访问的链接地址。 "background_page" : "html/background.html", //后台运行的页面,所有的跨域请求应该放在这里面执行。 "page_action" : //插件小图标的一些相关配置 { "default_icon" : "image/demon-19.gif", "default_title" : "" }, "content_scripts" : [ //content_script.js只对哪些页面生效、需要哪些JS文件 { "matches" : [ "http://*.douban.com/*","http://api.t.sina.com.cn/oauth/*" ], "js": ["js/jquery.js","js/jquery-ui.js", "js/contentscript.js"], "run_at" : "document_idle", "all_frames" : false } ], "icons" : { "48" : "image/demon-48.gif" }}
<?xml version='1.0' encoding='UTF-8'?><gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <app appid='hldoefihoaojobhlpfmnkjodjkmpicha'> <updatecheck codebase='http://douban-demon.googlecode.com/files/DoubanDemon-v1.6.0.crx' version='1.6.0' /> </app></gupdate>