网页里面调用OCX控件的一般方法

在HTML页面中使用ActiveX控件包含三个基本操作:将控件放入HTML中;将该控件下载给用户;在用户机器上安装该控件。如果只是针对IE用户,在HTML中插入ActiveX控件就比较简单;如果同时兼顾IE和Netscape用户,则要做更多工作。大家知道,HTML文件由文本和各种标志 (tags)组成,ActiveX 控件对于IE在HTML中的标志是<OBJECT>,该标记有几个重要的参数特性,它们是: 

1.ID:为控件提供一个标识名称,为HTML代码提供一种访问该控件的方式。
就是说在网页内部给控件提供一个名字 ,在网页中通过这个名字访问控件。

 

2.CLASSID:是该控件唯一的UUID,告诉IE装入哪个对象。如果使用已经开发好的控件,它的CLASSID可以通过调用Win95或NT下的应用Regedit来查找。从开始菜单中运行该程序,展开HKEY_CLASSES_ROOT项,可以看到按字母顺序排列的注册表,找到需要使用的控件名,例如WClnt,展开时可看到一个CLSID文件夹,里面就是该控件的CLASSID。 

如果是自己用VC开发控件,该UUID可以在ActiveX控件项目中的ODL(对象描述库)文件中找到;通过查看控件的类信息注释来定位特定控件的UUID,例如,要找到CMyControl控件的UUID,则需要找到以下代码: 

Class information for CMyControl 

[uuid (051C4748-1262-11D2-87C1-00A024D948FB), 

licensed, 

helpstring("CmyControl Control"), control ] 

uuid后面括号中的内容就是该控件的UUID。 
这个CLASSID相当于身份证,通过这个数字找到在电脑上已经注册的控件。

3.CODEBASE(代码库):如果在用户机器上没有控件的当前版本,该参数告诉用户浏览器在哪里可找到要下载的控件和最新版本号.当控件作了修改后,可以更改版本号强制用户重新下载。 

4.PARAM:该标记用于设置控件的初始属性值,它有两个特性:Name和Value,即属性名称和属性值。

此外还有一些标记,如:Width表示该控件所占的宽度,Height表示高度等,总体来说,这样一个插入控件的HTML代码和插入Java Applet的HTML代码非常相似。 

下面是一个嵌有ActiveX控件的HTML代码示例: 

<OBJECT ID="CMyControl" CLASSID="clsid:051C4748-1262-11D2-87C1-00A024D948FB" CODEBASE="http://www.mysite.com.cn/ocxdir/mycontrol.ocx#version=1,0,0,1" WIDTH=400 HEIGHT=200 ALIGN=center HSPACE=0 VSPACE=0 > </OBJECT> 

CODEBASE的设置中,若CAB文件与该WEB文件保存在同一目录下,只需写其文件名即可,即CODEBASE="mycontrol.ocx#version=1,0,0,1";#号代表此控件的版本,如果版本不同,客户端的浏览器自然会下载更新。

如果希望控件还能在Netscape中运行,除了Netscape需加装插件外,HTML也要加一些附加标记,下面的例子中EMBED段就是为 Netscape加上的。如果使用MFC开发OCX控件,则少数用户第一次访问时除了下载OCX文件外,还要下载相应的MFC DLL,下载量变大,这时可将相关文件在服务器端打包成可以在客户端自解压安装的CAB文件。经过修改后的HTML代码段如下: 

 

<ALIGN="CENTER" CLASSID="clsid: 

7BCA18C6-2178-11D2-87C1-00A024D948FB" 

WIDTH="1200" HEIGHT="900" ID="marquee" 

CODEBASE="http://218.168.188.188/scadaweb/ 

WClnt.cab#version=1,0,0,1"> 

<EMBED ALIGN="CENTER"CLASSID="clsid:7BCA18C6- 2178-11D2-87C1-00A024D948FB" 

WIDTH="1200" HEIGHT="900" ID="marqueequot;" 

CODEBASE="http://218.168.188.188/scadaweb/ 

WClnt.OCX#version=1,0,0,1" 

TYPE="application/oleobject" >
 

 

 

一个网友的总结

在JSP(Java Server Pages)中调用OCX可以按如下操作:

 

一 先用regsvr32 D:\TestOcx.ocx 命令注册,这是我OCX存放的路径,当然也可以直接进入到ocx存放目录下去注册(个人习惯而已)

 

如果注册成功,会提示注册成功。

 

需要卸载用regsvr32 D:\TestOcx.ocx /u 命令

 

二 到注册表查找OCX的CLSID

 

regedit 打开注册表,在编辑菜单里点查找输入OCX的名字,就可以找到它的CLSID和版本号

 

三 写下如下JSP代码

 

<html>

<head>

<script type="text/javascript" language="javascript"> 

 function show(){

        TestOcx_new.TestOcx("1");

    }

    </script>

    </head>

   <object id="TestOcx_new" width="32" height="32"

        classid="clsid:8009643F-44E9-4698-A242-3548E86FB4DF"

        CODEBASE="<%=request.getContextPath()%>\TestOcx.ocx#version=1.0">

    </object>

<body οnlοad="show()">

</body>

</html>

其中:ID可以随便起名,CLASSID就是注册表里找到的CLSID,CODEBASE就是OCX的路径,版本号也是注册表里找到的。

 

曾调试写与不写没有什么区别,不知道问题所在,在我的程序里没有写)

然后就是写方法去调用OCX里的事件了,这句TestOcx_new.TestOcx("1");

 

TestOcx_new就是你起的ID名,TestOcx("1")就是OCX里的方法名和你传进去的参数了。

以下是我实际操作中关键部分的截图:

 

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 谷歌浏览器不支持OCX(Object Linking and Embedding Custom Controls)。OCX是一种用于Windows操作系统的动态链接库文件,通常用于在软件开发中添加自定义控件和功能。 谷歌浏览器是基于开源Chromium项目开发的,其核心思想是简单、快速、安全。为了提供更好的用户体验和安全性,谷歌浏览器在其设计中禁止了对OCX控件调用。 相反,谷歌浏览器支持HTML5、CSS3和JavaScript等现代 web 技术。通过这些技术,开发者能够创建强大的交互式网页和应用程序,而不需要依赖OCX控件。 如果您需要在网页上使用OCX控件功能,建议您寻找其他浏览器,如Internet Explorer。IE浏览器对OCX控件有较好的支持,并允许通过JavaScript调用和使用OCX控件方法。 总之,由于谷歌浏览器的设计初衷和安全考虑,它不能直接调用OCX控件方法。但通过使用其他浏览器或采用现代web技术,开发者仍然能够实现类似的功能。 ### 回答2: 谷歌浏览器(Google Chrome)是基于Chromium开发的浏览器,它默认不支持调用OCX控件(Object Linking and Embedding Custom Controls)。OCX是一种微软制定的可重用软件组件,用于在Windows平台上创建交互性强的应用程序。 然而,可以通过一些技术手段在谷歌浏览器中实现对OCX控件调用。以下是其中一种常见的方法: 1. 创建一个包含OCX控件的步骤类库(ActiveX Library)。 2. 在OCX控件中编写相应的方法,以实现各种功能。 3. 在网页中嵌入谷歌浏览器ActiveX插件(ActiveX Plugin),该插件可以允许浏览器加载本地的OCX控件。 4. 在网页中使用JavaScript调用插件,并通过插件的接口调用OCX控件中的方法。 需要注意的是,因为OCX控件是基于Windows平台的,所以上述方法只在Windows系统中的谷歌浏览器上有效。对于其他操作系统或浏览器,可能需要使用其他技术手段或工具来实现类似的功能。 在实际应用中,调用OCX控件需要谨慎考虑安全性问题,确保控件的来源可信,并避免潜在的安全风险。同时,谷歌浏览器也持续更新和改进,未来的版本可能会对OCX控件调用提供更多的支持和便利。 ### 回答3: 谷歌浏览器(Google Chrome)是一款使用Webkit作为底层渲染引擎的浏览器,它不支持直接调用OCX(OLE Control Extension)控件方法OCX是一种Microsoft Windows操作系统中的控件类型,通常用于实现特定的功能或界面。 然而,可以通过其他方式间接地在谷歌浏览器中使用OCX控件方法。一种方法是使用ActiveX控件,这是一种Microsoft技术,允许在网页上嵌入和调用COM(Component Object Model)对象,包括OCX控件。然而,使用ActiveX控件需要在浏览器中启用ActiveX支持,并且限制了在非Windows操作系统上的使用。 另一种方法是使用谷歌浏览器的扩展(Chrome Extension)来实现对OCX控件方法调用。Chrome扩展是一种以JavaScript编写的浏览器插件,可以通过扩展API与浏览器的功能进行交互。通过编写一个自定义的Chrome扩展,可以使用JavaScript调用OCX控件方法,前提是OCX控件已经在操作系统中正确注册和安装。 需要注意的是,使用OCX控件方法可能会存在一些安全风险,因为它们可以执行操作系统级的功能。在使用谷歌浏览器调用OCX控件方法时,必须确保控件来自可信的来源,并采取适当的安全措施来防止潜在的恶意行为。 总的来说,在谷歌浏览器中调用OCX控件方法需要借助ActiveX控件或自定义的Chrome扩展,并且需要注意安全性问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值