您的位置:首页 > Web前端 > JavaScript

关于ActiveX控件开发、js调用

2016-03-03 14:54 531 查看

控件制作:

32位控件制作

参考:32位控件制作

64位控件制作

参考:一、创建;二、界面;三、js调用
说明:64位控件的js调用我按上述教程制作,调用可以,但是控件中没有文章中说的控件中显示的那行文字,不知道什么问题,应该不算是太成功。
注意:32位编译软件(vs6.0和vs2010默认平台 )编写的控件,只能在32位IE浏览器上使用;64位编译软件(vs2010编译软件更换为64位)编写的控件只能在64位IE浏览器上使用;可能目前已经解决该问题,但是我还没有找到办法,所有我目前就这么认为!
控件注册:
编译器直接运行调试,如果没有报错就会自动注册成功;
如果用cmd命令注册的话:
32位的需要将控和依赖的dll全部拷贝到C:\Windows\System32目录下,然后shift+鼠标右键点击空白处,选择在此处打开命令窗口;输入regsvr32 ***.ocx
64位的需要将控和依赖的dll全部拷贝到C:\Windows\SysWOW64目录下,然后shift+鼠标右键点击空白处,选择在此处打开命令窗口;输入regsvr32 ***.ocx如果无报错,及成功。

如果报错:例如找不到指定模块;可以下载Depends工具看看缺少什么怎么使用参考Depends工具使用说明

js调用控件:

CLSID的获取:

我查了网上好多资料,都说注册成功之后,在注册表查找***.ocx即可找到,但是我建议将找到的每一个CLSID找到,都尝试一下,因为我就是因为 这个问题和浏览器32和64位问题导致搞了一周。。。一般会找到4个不同的CLSID,然后就新建一个html页面,
加入不知道要调用的方法可以用OLE/View先点File然后按下图,找到自己注册的ocx控件然后打开,可以找到方法。



html代码例子:

<html>
<head>
<title>new page</title>

<script language="javascript" type="text/javascript">
function testfunc() {
alert("111");
var test = document.getelementbyid("devread").test(1, 2);
alert(test);

}
</script>
<input type="button" value="调用" onclick="testfunc()">

</head>
<body>
<object id="devread" name="devread"
classid="clsid:14F625A2-EB18-41ED-A0C7-530F0362C882" width=528
height=45>
</object>
<!--64位控件使用CLSID为:B48EE35F-ED9B-4660-93AC-068191A298C4-->
</body>
</html>


写的简单示例:32位的64位的
如果不行就将浏览器的安全设置,(包括网络和本地以及可信站点)关于ActiveX的设置全部设置为启用或提示!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: