js调用ocx控件的问题

这两天接触到了一些硬件设备与软件之间的交互。 
主要是用到了神思二代身份证读卡机器,让它能把身份证的信息显示到页面中。 


按照提供的接口来写,主要是用js来调用ocx的控件来读取身份证,ic卡的内容,但是经过了两天的调试才成功,下面把我遇到的一些问题说明一下,给自己一个提醒,也希望能帮到大家。 

1,刚开始用拿到的只是一些ocx控件,还有一个批处理文件,这个批处理文件主要是将一些用到的ocx,dll文件拷贝到C:盘的Windows/System32目录下,因为我的操作系统是64位的,所以运行这个批处理文件可能会有问题,只能重新找台机器。 

2,找了一台32位XP系统的机器,并且将ocx文件拷贝到Windows/System32目录下,(可能是因为在批处理文件中已经注册了这些ocx文件,所以我没有注册这些ocx文件) 

3,下面就进入到html页面去写js调用ocx控件代码,html的代码如下: 
<object classid="clsid:{XXXXXXXX-XXXX-XXXXXX-XXXX-XXXXXXXX}" codebase="" id="idCardReader" style="display:none" width="0" height="0"></object> 
这里面classid是通过查看注册表的到的(可以百度一下怎么查注册表ocx控件) 
js的代码如下: 
function readIDCard(){ 
var reader=$("idCardReader"); 
//alert(reader); 
reader.DoRead();     //控件的卡中的信息 
//alert(reader.IDName); 
if(reader.IDName!="" && reader.IDName!=null) { 
if(form1.userName.value==""){ 
form1.userName.value=reader.IDName; 
form1.credentialCode.value=reader.IDCode; form1.currentAddress.value=reader.IDAddress; 
}else{ 
if(form1.userName.value=reader.IDName&&reader.IDName!=""){ form1.userName.value=reader.IDName; form1.credentialCode.value=reader.IDCode; form1.currentAddress.value=reader.IDAddress; 
}}}} 
但是无论如何调用该方法,总是提示“对象不支持此属性或方法”。 
在网上搜了许多资料,可能出现的原因如下 
   (1)有可能是浏览器的问题,可能因为浏览器的安全级别过高,不允许未签名的控件下载或运行(这个在浏览器的工具-->Internet选项-->安全 里面的级别设置一下就行) 
   (2)可能是当前页面中引入的js发生冲突以至于js调用控件的方法未识别。 


我就是因为js冲突这个原因导致身份证读卡机一直读卡失败,开始一直以为是硬件设施的问题,可能是因为我把项目搭在了64位操作系统上,导致读卡失败,但是后来想了一下,我用的是32位XP系统去访问服务器的,就算是使用了控件,在我的本机上也已经注册过了,应该不会有问题,之后我将调用控件的html页面引入的所有js都注释了,果然读出来了,看来是我一开始解决问题的思路不对,出发点就错了,看来经验还需要慢慢的积累,请多多指教 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值