阶段性总结--各浏览器下插件开发(未完待续.)
2012-10-30 22:42
225 查看
前段时间一直在做各浏览器下插件开发的工作,主要包括:chrome、firefox、sogouExplore、maxthon3和opera这几款浏览器、其他的浏览器基本都是chromium和trident加个壳子,而且开放的API也是从chrome上继承过来的,虽然让人觉得比较恶心,但是确实省了很大一部分的开发时间。
插件主要包括三大块:
popup页面:主要进行登录和显示详情的页面
contentScript:注入到当前content中,对当前页面分析并获取的相关信息,例如:是否有选中、是否可以进行智能提取等等
background:主要负责接收来自popup页面和contentScript中发送的消息,并进行处理
优点:
完善的API和使用文档。提供的扩展API比较全面,而且还在不断的扩充功能,能想到的功能,基本都可以用google提供的API来完成。
扩展内部机制较好。用起来也比较简单易上手。
缺点:调用本地功能比较麻烦,但是可以使用NPAPI来辅助,官方不推荐。
功能强大:XUL + XPCOM + javascript,基本能实现任何功能,包括chrome无法完成的本地功能;
扩展审核比较严格:测试人员比较负责,会把你的代码和扩展完全的走一遍,然后找到你代码中会出问题的地方,在邮件里反馈给你。对我这样的新手来说,也算是有一个传授经验的人了。
缺点:
学习成本较高,尤其是对我这种英文烂的人来来说,因为只有英文文档,很多东西都是硬着头皮看的。
审核时间比较长;一般初次审核,都得一星期以上,我开始运气比较不好,初审等了大概两周,结果还被拒绝了。
API文档比较完善,而且都配有例子
popup页面可以直接使用background页面中的object,省下了通信的处理,感觉还比较方便。
缺点:
调试模式下,很多功能都有问题。例如:popup页面,在blur的时候,不自动隐藏,调用window.close()仍然不可以,还以为需要特殊的接口,结果打包安装发现,自动隐藏没问题。
国际化感觉比较麻烦,Opera是把每个需要国际化的界面都放在单独的语言包下面,这样对我这种新手来说,代码结构不好,就会造成很大的麻烦
注意:
include的文件中,不能直接调用未声明的变量,需要用typeof判断,否则报错;例如jQuery是否加载不能直接使用if(!jQuery){……},需要用if (typeof jQuery === 'undefined') {……}
和开发人员沟通较容易,QQ群里面直接就可以找内部的开发人员帮忙,感觉还是挺好的,国内的,感觉服务还都不错
缺点:
API太不完善,而且很多API实现的有问题。例如:事件监听句柄,是监听全局插件的...无法做到只监听自己..;popup页面隐藏时,后台发送给他的请求,还是能接收到。
文档介绍也比较简单,很多限制没有写到文档里面,都是自己碰之后,耽误了几个小时候才发现的,比如:提供的消息机制,有大小限制,数据大小不能超过16K。如果超过也不报错
第一次写,感觉比较乱,以后更新的时候,对各浏览器也会有更深的了解,再逐渐完善这个小总结。
最后送一下传送门,各浏览器的API地址:
Opera, Chrome, Firefox
通过 为知笔记 发布
插件主要包括三大块:
popup页面:主要进行登录和显示详情的页面
contentScript:注入到当前content中,对当前页面分析并获取的相关信息,例如:是否有选中、是否可以进行智能提取等等
background:主要负责接收来自popup页面和contentScript中发送的消息,并进行处理
Chrome:
自从用了就爱不释手的浏览器,确实比以前那些浏览器要强多了,速度不是一般的快。优点:
完善的API和使用文档。提供的扩展API比较全面,而且还在不断的扩充功能,能想到的功能,基本都可以用google提供的API来完成。
扩展内部机制较好。用起来也比较简单易上手。
缺点:调用本地功能比较麻烦,但是可以使用NPAPI来辅助,官方不推荐。
Firefox:
优点:功能强大:XUL + XPCOM + javascript,基本能实现任何功能,包括chrome无法完成的本地功能;
扩展审核比较严格:测试人员比较负责,会把你的代码和扩展完全的走一遍,然后找到你代码中会出问题的地方,在邮件里反馈给你。对我这样的新手来说,也算是有一个传授经验的人了。
缺点:
学习成本较高,尤其是对我这种英文烂的人来来说,因为只有英文文档,很多东西都是硬着头皮看的。
审核时间比较长;一般初次审核,都得一星期以上,我开始运气比较不好,初审等了大概两周,结果还被拒绝了。
Opera:
优点:API文档比较完善,而且都配有例子
popup页面可以直接使用background页面中的object,省下了通信的处理,感觉还比较方便。
缺点:
调试模式下,很多功能都有问题。例如:popup页面,在blur的时候,不自动隐藏,调用window.close()仍然不可以,还以为需要特殊的接口,结果打包安装发现,自动隐藏没问题。
国际化感觉比较麻烦,Opera是把每个需要国际化的界面都放在单独的语言包下面,这样对我这种新手来说,代码结构不好,就会造成很大的麻烦
注意:
include的文件中,不能直接调用未声明的变量,需要用typeof判断,否则报错;例如jQuery是否加载不能直接使用if(!jQuery){……},需要用if (typeof jQuery === 'undefined') {……}
Maxthon3:
优点:和开发人员沟通较容易,QQ群里面直接就可以找内部的开发人员帮忙,感觉还是挺好的,国内的,感觉服务还都不错
缺点:
API太不完善,而且很多API实现的有问题。例如:事件监听句柄,是监听全局插件的...无法做到只监听自己..;popup页面隐藏时,后台发送给他的请求,还是能接收到。
文档介绍也比较简单,很多限制没有写到文档里面,都是自己碰之后,耽误了几个小时候才发现的,比如:提供的消息机制,有大小限制,数据大小不能超过16K。如果超过也不报错
Sogou:
改了改chrome的API,而且没有实现好多功能。第一次写,感觉比较乱,以后更新的时候,对各浏览器也会有更深的了解,再逐渐完善这个小总结。
最后送一下传送门,各浏览器的API地址:
Opera, Chrome, Firefox
通过 为知笔记 发布
相关文章推荐
- atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
- atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
- atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
- QT浏览器插件的开发过程总结
- Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..
- npapi插件开发的阶段性总结
- Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..
- 浏览器插件总结
- VC++开发BHO插件——定制你的浏览器
- AE插件开发的一些总结
- 基于Metronic的Bootstrap开发框架经验总结(16)-- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
- Final Cut Pro X效果插件开发总结
- js浏览器和浏览器插件检测的方法总结(二)
- 网站开发常用jQuery插件总结(12)固定元素插件scrolltofixed
- 浏览器插件之ActiveX开发(二)
- chorme插件 ,在浏览器上模拟手机,pad 查看网页|前端技术开发必备插件
- 浏览器插件之ActiveX开发(四)
- android 浏览器插件开发 - 流程(1)
- 基于npapi框架的浏览器插件开发
- Myeclipse学习总结(4)——Eclipse常用开发插件