zoukankan      html  css  js  c++  java
  • 非IE内核浏览器支持activex插件

    之前在一个B/S项目中遇到一个需求,就是客户需要在页面上对报表的布局以及显示内容,进行自定义。最后决定使用activex技术来实现。众所周知,activex是微软搞得,因此只有ie内核的浏览器才能支持。像firefox(火狐)、Chrome、Apple Safari等非ie内核浏览器都不支持activex控件,这样就大大加大了系统使用的局限性。

    因此考虑是不是可以让非ie内核浏览器也能支持activex控件,目前火狐等浏览器也有类似于activex控件的技术,那就是插件。所以最终决定以插件来作为连接activex的纽带,使非ie内核浏览器也可以支持activex控件。

    确定了开发内容后,接下来就是上网了解相关方面的知识和技术。了解了NPAPI技术

    NPAPI全称为:Netscape Plugin Application Programming Interface (NPAPI).

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

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

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

    经过一个多礼拜的开发,插件功能已经基本实现。并且为了方便使用已经打包成exe安装包。在项目中可以直接让用户下载安装。

    安装效果图:

    安装完成后,可以打开火狐浏览器在地址栏输入about:plugins,查看插件是否正确安装,
    如下图所示,已经安装成功
    下面测试一下插件效果,首先找一个可用的activex控件(本人用自己写的插件测试)html页面代码
     
    Html代码 复制代码 收藏代码
    1. <HTML>     
    2. <H1> 测试页面 </H1><p>     
    3. 测试页面     
    4. <HR><center><P>     
    5. <br>     
    6.     <object     
    7.         id="Webplugin"    //ocxid     
    8.         TYPE="application/xhanhan-activex"       
    9.         BORDER="0"     
    10.         WIDTH="300"     
    11.         HEIGHT="300"     
    12.         clsid="{A2DC9F0E-1A2D-4C6D-BB2E-053BABE17134}"> //ocx插件id     
    13.     </object>     
    14.      
    15. </HTML>    
    <HTML>  
    <H1> 测试页面 </H1><p>  
    测试页面  
    <HR><center><P>  
    <br>  
        <object  
            id="Webplugin"    //ocxid  
            TYPE="application/xhanhan-activex"    
            BORDER="0"  
            WIDTH="300"  
            HEIGHT="300"  
            clsid="{A2DC9F0E-1A2D-4C6D-BB2E-053BABE17134}"> //ocx插件id  
        </object>  
      
    </HTML>  
     
    以上代码保存为html文件然后用火狐打开,效果如下图
     
     
    可以看到activx控件已经可以在火狐下运行。目前插件已经在xp,vista、win7、win7(64)、windows server2003、
    windows server2008等操作系统,以及火狐、Google Chrome、Opera、Apple Safari、遨游极速模式、360急速模
    式下通过测试。支持市面上大部分主流浏览器。
  • 相关阅读:
    浙大版《C语言程序设计(第3版)》题目集 --总结
    | C语言I作业09
    c语言课本及pta作业中运用到的程序思维
    | C语言I作业08
    团队作业(四):描述设计
    实验三《敏捷开发与XP实践》_实验报告
    MyOD(课下作业,选做)
    实验二《面向对象程序设计》_实验报告
    20175226 2018-2019-2《java程序设计》结对编程-四则运算(第二周-阶段总结)
    20175226 类定义
  • 原文地址:https://www.cnblogs.com/zhwl/p/2782949.html
Copyright © 2011-2022 走看看