目录
浏览器插件是应用范围比较广的技术,因为一旦涉及到b/s模式开发,总会出现web端解决不了的情况,比如操纵硬件或本地文件等。即使html5的出现增强了web端的功能,但是就目前技术和发展趋势来看,浏览器插件技术无法被替代。然而在浏览器插件技术上,几大浏览器厂商一直“各自为政”,特别是谷歌,更是傲娇,给国内的开发者带来很多麻烦。
主要的浏览器插件技术
目前主要的浏览器插件技术有以下几种:
- ActiveX 控件
ActiveX控件是 ie 浏览器的专属技术,也是个比较古老的技术,国内各大银行的网银插件基本都是用ActiveX开发的,所以在使用网银转账的时候,很多网站都仅支持ie。但是近些年来随着手机支付技术的普遍(支付宝,手机银行,微信等),在网银支付这一块ActiveX技术也在逐渐没落。
- NPAPI 插件
NPAPI 插件同样是个逐渐没落的技术。浏览器基本是三巨头的天下(ie,谷歌和火狐),其实我觉得也就算两巨头,因为火狐虽然有自己的内核,但是在技术发展上有点唯谷歌马首是瞻的感觉,谷歌支持啥它就跟着来,谷歌要抛弃啥它也跟着来。国内比较主流的国产浏览器也基本同时使用了ie和谷歌的内核,比如qq、360这样的浏览器就同时支持双方的插件技术。之所以说NPAPI逐渐没落是因为谷歌浏览器自从v45版本后就不支持NPAPI了,火狐也宣布会抛弃NPAPI技术,现在要想使用NPAPI就必须降低浏览器版本。
为啥抛弃NPAPI呢,按谷歌官方的说法是NPAPI不安全,因为它又能操作本地文件又能控制硬件容易被不法分子使用。这一点我必须狠狠吐槽一下,怕摔倒就不走路了吗,我们为啥要用浏览器插件啊,大部分情况下不就是为了操作本地文件或硬件吗。比如某些情况下我需要插上ukey来验证身份,你谷歌说哎呀不安全,你插的ukey是微软系统加载的,我们的浏览器没法直接控制,你还是别用了吧~~~说的好听点是谷歌技术思路追求完美,说的难听的就是仗着自己牛叉就肆意妄为,完全不在乎开发者的想法,这一点苹果公司和谷歌很像,希望他们早点把自己作垮台。
- PPAPI 插件
PPAPI插件是谷歌用来替换NPAPI的,它使用了沙箱机制,所有操作全在沙箱内部完成。按谷歌的说法这是保证安全性的最佳方案。这种模式无法操作谷歌浏览器进程外的任何东西,所以如果需要开发能够控制外部设备的浏览器插件,PPAPI是不行的。在国内,PPAPI的意义不大,因为国内的商业项目使用插件的目的很多时候就是为了操纵本地设备。
- 谷歌本地消息机制(Native messaging)
这种技术是谷歌特有的一种,本质上不是插件而是扩展(关于