前言:今天搜狗推出了搜狗云输入法(详见http://pinyin.sogou.com/cloud)关注各方评论到现在,大家还是非常赞赏这个举动的,川总也提到会优先开发Firefox插件,突然想到去年我也尝试了一个小插件的开发,于是特地翻出来复习一下,想也做一下尝试了。另,最近本人出现了一些感冒症状,这个节骨眼上,还是很担心的,虽然我确定是那晚上被子没盖好所致。。。今天下班后老老实实的去弄点药,希望可以快点好起来,不行又得去医院了。。。
Firefox极好的架构方式为其扩展开发提供了非常好的前提,使得扩展开发工作可以规范、有序的进行,关于firefox扩展开发的系统介绍,可以在基于 Mozilla 的扩展开发一文中看到(包括了Mozilla Firefox 和 Mozilla Thunderbird),如果网络无法访问,也可以通过访问我们的资源共享平台获取,地址为:http://iweb.sohu-rd.com/uploads/firefox%b2%e5%bc%fe%bf%aa%b7%a2/
在上篇文章中附带了一个helloworld的小例子,可以帮助你理解,或者,你可访问一篇名为实战Firefox扩展开发的文章,获取实战经验。在开发过程中有几点是需要注意的:
1.因为开发出来的扩展其实是以文件的形式存在于你的Firefox application 中的,作为内容的一部分,被存放在名为extensions的文件夹下,而扩展本身的命名以及内部子文件夹,子文件的命名都有一定的要求,而每一个扩展都有一个独一无二的命名,以前可以采用微软的GUIDGen.EXE应用程序产生,它会产生一个不会重复的id,而这个id将作为扩展的标识和安装后的文件夹名。在后来,约定允许用开发者的email地址来作为这个id,总之保证唯一性即可。而一些子文件夹和文件的命名也是有约定的,具体可以在基于 Mozilla 的扩展开发一文中看到。
2.关于调试开发的问题,这个我自身还没有搭建一个调试环境来实施开发,但第一篇文章中提供了方法,如果需要做专门和较专业的扩展开发,可以参考,将大大提升开发效率
3.关于xul,它是用以描述Mozilla界面的语言,可以当作一种换了标签的html,事件和属性也有很多相似之处,具体可以参考Mozilla Developer Center的文档,获取每一种标签的表示方法,如单选按钮应该用如下的标签:
<radiogroup id=”enginelist”>
<radio id=”orange” selected=”true” label=”搜狗搜索” value=”sogou” />
<radio id=”violet” label=”百度搜索” value=”baidu” />
</radiogroup>
而这和html语言相似却又有不同的地方,开发之前应该多注意。
4.XPCOM与XPConnect。XPCOM是“跨平台组件对象模型(Cross -platform Component Object Model)”的缩写,它很像微软的提出的组件模型技术,但它是跨平台的,即其运行环境可以不依赖于某种特定的操作系统平台。而XPConnect是一种将 XPCOM 与 JavaScript 连接起来的技术。该技术允许组件被脚本化,而且能够用 JavaScript 来进行组件的开发。这两者在开发过程中可以实现存取配置信息、负责网络服务通信等多种功能。有一个第三方扩展叫做XPCOMViewer的好东西,可以查看所有的可支持的扩展和相关的方法。
5.对于键盘事件的支持和捕捉,这个是我在具体的开发过程中遇到的问题,快捷键可以通过以下几种方式实现:
1).设置控件的accesskey属性,如
<menu id=”file-menu” label=”文件(F)” accesskey=”f”>
<menupopup id=”file-popup”>
<menuitem id=”close-command” label=”关闭(X)” accesskey=”x”/>
</menupopup>
</menu>
2).通过keyset标签绑定命令来实现某个操作,如
<keyset>
<key id=”key1″ modifiers=”control” key=”Q” oncommand=”alert(’你按了快捷键crtl+Q’)”/>
<key id=”key2″ modifiers=”control alt” key=”C” oncommand=”alert(’你按了快捷键crtl+alt+C’)”/>
<key id=”key3″ keycode=”VK_F6″ oncommand=”alert(’你按了快捷键F6′)”/>
</keyset>
在这里需要提及一些技巧和经验:keycode的方式似乎不能直接设置普通键,如S键,用keyconfig扩展查看启用s键的设置,提示不可识别,不过如果你真是需要设置一个诸如S键的单键快捷键,可以通过这样的方式来实现:<key id=”key1″ modifiers=”” key=”S” oncommand=”alert(’你按了快捷键S’)”/>,不过好像不支持ff2.0及以下版本。
6.有关打包和安装的方式在文档1里面有详细说明,注意采用zip方式压缩而不是rar方式,否则会出错,jar后缀和xpi后缀都是对zip文件改名得到的。
最后,奉上一个我个人开发的第一个基于Firefox的扩展:QuickSearch,它具有如下特性:
1).可以设置当前的搜索引擎,默认为搜狗,可以供选择的搜索引擎包括:搜狗、百度、谷歌、雅虎和搜搜;
2).用鼠标选中想要查询的关键词,然后按下S键,将快速的实现搜索,使用其他比工具条上的搜索引擎以及访问搜索引擎站点,输入关键词要快捷方便。
QuickSearch下载地址:http://iweb.sohu-rd.com/uploads/firefox%b2%e5%bc%fe%bf%aa%b7%a2/quicksearch/quicksearch.xpi
毕竟是我第一次尝试Firefox下的扩展开发,很多方面都还欠缺,如果有任何开发方面的疑问和建议,欢迎邮件到iweb@sohu-rd.com,让我们共同进步。
No Comments for this post
还没有评论。
Leave a comment