非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>
<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急速模
式下通过测试。支持市面上大部分主流浏览器。
目前安装包已经上传至下载频道
以下是本人联系方式,欢迎大家多多交流
qq:1172494835
email:xhanhan@126.com
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Java调用IE内核浏览器常用的方法是通过使用JavaFX Webview组件来实现。 JavaFX是Java平台的一部分,它提供了一套用于构建富应用程序的图形界面工具包。其中的Webview组件可以嵌入Web内容,包括HTML、CSS、JavaScript等,实现浏览器的功能。 下面是一个简单的示例代码,演示如何在Java中调用IE内核浏览器: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.web.WebView; import javafx.stage.Stage; public class WebViewTest extends Application { @Override public void start(Stage primaryStage) { // 创建JavaFX的Webview组件 WebView webView = new WebView(); // 设置WebView的属性,使用IE内核 System.setProperty("sun.net.http.allowRestrictedHeaders", "true"); System.setProperty("webfx.forceHardwareAccel", "false"); // 加载指定的URL webView.getEngine().load("http://www.example.com"); // 创建一个场景,并将Webview加入其中 Scene scene = new Scene(webView, 800, 600); // 设置舞台的场景,并显示舞台 primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 在上述代码中,我创建了一个JavaFX的应用程序,并在其中使用Webview组件来加载指定的URL。通过设置`sun.net.http.allowRestrictedHeaders`和`webfx.forceHardwareAccel`系统属性,可以强制使用IE内核。最后,创建场景并将Webview加入其中,并设置舞台的场景并显示舞台。 需要注意的是,IE内核的具体版本取决于计算机上安装的IE版本。在使用Java调用IE内核浏览器时,需要确认计算机上已安装了IE,并设置相应的系统属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值