博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用JavaScript调用ActiveX控件
阅读量:6474 次
发布时间:2019-06-23

本文共 1318 字,大约阅读时间需要 4 分钟。

  hot3.png

昨天我们的代码狂人叫我一天帮他做个web页面可以用来调试ActiveX控件的.

我的第一反应....ActiveX控件?啥..没接触过.不知道能不能搞..狂人告诉我3个小时后就要去人家公司调试用的.必须做好.

我霸气的说:"好,没问题!搞不出来我剁手".当然只是玩笑话,不过有种置于死地而后生的感觉.

首先百度下啥是ActiveX控件:按我的理解就是,打包成一个库,之后在windows上注册,然后就能在该台windows上用这个插件了.(我的电脑是MAC系统呀,算了找台windows折腾吧)

第一步:注册

打开cmd

(注意:控件与系统是不是一样都是32位或者64位,注册不成功可能是少装了一些库)

吐槽:在和其他合作捣鼓一个东西的时候,我们虽然可能没办法解决问题,但可以帮其他人一起找出问题所在.不要以为"事不关己高高挂起".

输入   regsvr32 C:\xxxx.ocx (XXXX为控件名, C:\为目录))

成功的话会弹出成功提示

第二步:添加到HTML

这一步其实不难,就是繁琐.直接上代码

这里有些参数要说明下.object里的id是用来js调用事件的,所以可以随便起个,classid是在注册成功后生成的,用来识别你用的是哪个ocx,所以说是唯一的.

至于如何找到classid有几种方法,可以百度下,我使用Microsoft ActiveX Control Pad这个软件.写这篇文章的时候,我已经都调试好了,之前也没有截图,所以稍微的说下用MACP取classid的流程吧.

获取classid

用MACP新建一个HTML页面,然后再选择Insert ActiveX Control插入一个控件,type就是你的控件名,如果注册成功的话,就可以在type里面找到,插入成功后,在object里面就可以复制classid出来了.

自此就可以在html上看到这个ocx了.

第三步:用JavaScript调用方法and触发事件

这个最简单,直接上代码

调用方法

    var obj = document.getElementById("EpecPhoneAX");        obj.MakeCall(MakeCall_pchNumber);

object里的id就是在这时候起到作用的.

触发事件

    showInfo_evt(varMsg);

for里面填的是id  event写的是触发的事件名,而varMsg是他的返回值.

其实这里我也不太了解,大概估计是一个回调函数,因为我也不清楚他的c++是怎么写的.

第四步:让控件页面可以兼容

据我百X,谷X一段时间之后所知,ActiveX控件只能运行在IE上,因为这原本就是微软的东东,如果你想运行在其他浏览器上,就只能做成浏览器的插件,提供个关键词有需要的人可以去查查NPAPI(Netscape Plugin Application Programming Interface,网景插件应用程序接口).

收工......

后续:   

转载于:https://my.oschina.net/l3ve/blog/261135

你可能感兴趣的文章
伴随着三维全息投影技术的升级,物理屏幕将彻底消失
查看>>
[LeetCode] Combination Sum III 组合之和之三
查看>>
cvReleaseImage 释放内存出错
查看>>
第 6 章 minifier
查看>>
vue绑定内联样式
查看>>
SQL2000 和 SQL2005下行列转换示例
查看>>
WebService的两种方式SOAP和REST比较
查看>>
JAVA多线程和并发基础面试问答(转载)
查看>>
Spring中基于Java的配置@Configuration和@Bean用法
查看>>
替换字符串中的空格
查看>>
代码组(3) 属性
查看>>
从还有一个角度看大数据量处理利器:布隆过滤器
查看>>
【转】基于溢出的入侵
查看>>
WF4实现工作流驳回流转模型的几种设计方案
查看>>
编写高效的C#图像处理程序(3) Rgb=>Lab,图像缺陷检测的例子
查看>>
[LeetCode]Binary Tree Preorder Traversal
查看>>
UIScrollView 滑动复位
查看>>
Eclipse里几个常用视图的ID
查看>>
busybox filesystem add ldd function
查看>>
【maven】 maven的setting.xml文件的详解
查看>>