多浏览器支持ActiveX控件

浏览器插件总体可以划分为两大阵营,即IE支持的插件以及非IE支持的插件。

本来在Netscape时代,对于浏览器插件是有公用的规范的(NPAPI),一开始所有浏览器都支持该规范,包括IE。后来出于商业原因,微软的IE不再支持NPAPI,改而自己开发了一套基于COM的ActiveX体系,但这个体系对于非IE浏览器是拒绝支持的。

所以目前的状况基本是,IE浏览器仅支持ActiveX控件,而Firefox、Chrome等浏览器只支持另一类接口(XPCOM或NPAPI)。要想实现一个Web插件,至少需要同时考虑IE支持的AceiveX版以及非IE支持的Plugin版(Flash等插件对于IE与非IE浏览器都是不同的)。

国内多数浏览器的WEBKIT内核极速模式等浏览器,与服务端是什么平台无关。

IE内核浏览器很多,主要是为了弥补IE浏览器本身功能的不足。现在或者曾经比较主流的几款IE内核浏览器(360安全浏览器、世界之窗、傲游、GreenBroswer等)


一:firefox


NPAPI 是一个很经典的插件方案,用dll进行注入,用协定的API进行通信,用字符串描述插件能力。浏览器会根据能力描述,动态加载插件,并负责插件调用的流程和生命周期管理。而插件中,负责真实逻辑的处理,并可以构造UI与用户交流。以此类方式实现的插件系统。


在firefox提供SDK的下载(https://developer.mozilla.org/en-US/docs/Gecko_SDK


插件整体的实现思路就是通过插件调用OCX控件,也就是插件本身是衔接浏览器与OCX的一条桥梁,这样做就可以简单的实现非ie内核浏览器对OCX控件的支持。

Firefox中支持ActiveX控件运行的研究与实现  http://www.doc88.com/p-3714312872887.html

怎么做能让Firefox支持ActiveX呢?  


答:两种方案:一种是使用IETab这个插件,在Firefox下直接调用IE浏览器内核进行浏览;  
另一种是使用npActivexPlugin,让Firefox直接支持ActiveX。这两款Firefox扩展的下载地址分别是http://ietab.mozdev.org/和http://forums.mozine.cn/index.php?showtopic=2350,选择一款适合你自己的就可以了。 


XPI是什么?

firefox中的xpi实际上类似于IE中的插件或扩展(如Flash插件等).
格式一般为.Zip, 由XUL、Javascript、CSS、HTML和图片等构成.

Firefox扩展包(Firefox Extensions)是指对为了增强在Mozilla Firefox中浏览网页所做的一些小改进的名字。他们也许只是 可以为Mozilla Firefox增加新的功能一个小程序或者插件。您可以在Extensions page上看一看各种扩展包列表。

  关于扩展包的最伟大的好事则是它使得Mozilla Firefox小巧而不臃肿。任何人可以根据自己需要安装适当的扩展包。

==================================================================
如何安装Firefox扩展文件?  

扩展文件通常是xpi文件格式(以.xpi结尾).有三种安装方法:

1,直接拖拽到Firefox浏览器的窗口里或扩展窗口里
2,点击  '菜单"--"工具"--''扩展'',把.xpi文件拖进弹出窗口里,稍后就可以看到Firefox会询问你是否要安装这个插件,点击是,并重启Firefox浏览器
3,鼠标右键点xpi文件,选打开方式,在打开方式里选firefox,设置关联。以后只要双击xpi文件就自动安装了 

二:chrome



NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤:    http://www.softwareace.cn/?p=122

NPAPI插件开发详细记录:安装包的制作     http://www.07net01.com/program/235980.html

NPAPI插件开发 http://blog.csdn.net/rainkop/article/details/8063709

理解WebKit和Chromium: 插件机制(NPAPI Plugin)    http://www.ithao123.cn/content-927701.html

基于NPAPI插件开发  http://www.aiuxian.com/article/p-1852532.html


猜你喜欢

转载自blog.csdn.net/qq_26591517/article/details/80867452