日期:2014-05-16  浏览次数:20337 次

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中的事件

?