javascript 使用ocx
1.找出相关信息,主要是classid
首先我们的给这个ocx起个名字,起什么名字通过最后生成的ocx控件的文件名决定。
第二,我们的找到这个ocx的编号值,将ocx提取出来,我采用Microsoft Control Pad来编辑,得到ocx控件的classid, 然后我们做下面的工作。
由于我的ocx不是自己编辑的,所以我是等注册后去注册表里找,直接复制文件名,然后打开注册表->查找,注意:第一次找到的可能不是我们想要的。一般情况,我们想要的这个右边的内容不止一项。然后复制他的父节点,例如:{CA69969C-2F27-41D3-954D-A48B941C3BA7}作为classid。
2.注册ocx控件
注册ocx控件使用RegSvr32.exe。
使用RegSvr32.exe(在System目录下)注册,语法为:
RegSvr32 path\ocxname.ocx
如果注册成功将显示一个成功的消息框。
如果不希望看到这个对话框,也可以使用/s选项,如
RegSvr32 /s your.ocx
如果取消注册,可以使用/u选项,如
RegSvr32 /u your.ocx
一般我们还要放到path(环境变量中配置的)下:
copy path\Biokey.ocx C:\WINDOWS\system32\
3.加载ocx控件
注册成功后,我们就得写一个html页面,通过<OBJECT>来加载这个控件了。具体如下:
<OBJECT id="ocx文件名/注册表里找来的值" codeBase="ocx控件的相对位置#version=1,0,0,0"data="data:application/xoleobject;base64,mRHW/Ifh3UqI5ZryOEhtERAHAAD/KgAAYSQAAA==" classid="CLSID:通过MCP找到的classid" VIEWASTEXT> </OBJECT>
上面有些内容我不了解,我就直接
<object classid="clsid:CA69969C-2F27-41D3-954D-A48B941C3BA7" id="Biokey1" width="0" height="0">其他选项就不写,这样也可以。
4.调用
一、调用属性和方法
调用属性和方法很简单,直接用object定义的id.属性/方法。例:属性Biokey1.IsRegister 方法Biokey1.CancelEnroll();
二、调用事件
<script language="javascript" for="Biokey1" event="OnFeatureInfo(AQuality)" type="text/javascript"> if(AQuality != 0){ alert("不合格,请重来!"); } //该事件要做的事情都写在这里就可以了。。。。。。 </script> 解释:event="OnFeatureInfo(AQuality)" 是ocx中的事件<OBJECT ID= "test " WIDTH=0 HEIGHT=0 CLASSID= "CLSID:226BEB85-AFA6-4B1A-9B5B-48673A55BB85 " CODEBASE= "http://localhost/activex/a.ocx "> <PARAM NAME= "_ExtentX " VALUE= "0 "> <PARAM NAME= "_ExtentY " VALUE= "0 "> </OBJECT> //CODEBASE= "http://localhost/activex/a.ocx " 不,要成 CODEBASE= "../activex/a.ocx#version1.0.0.1 " 1 楼 jiangcan611 2012-04-06 event="OnFeatureInfo(AQuality)"中的AQuality代表的是什么???????? 2 楼 123003473 2012-04-19 jiangcan611 写道event="OnFeatureInfo(AQuality)"中的AQuality代表的是什么????????
AQuality 代表ocx控件传过了的参数名称