关于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的设置全部设置为启用或提示!
相关文章推荐
- C# JSON和对象之间互相转换
- javascript中eval的用法
- javascript 高级程序设计 五
- [LeetCode][JavaScript]Palindrome Number
- javascript阻止事件冒泡和浏览器的默认行为
- js 时间操作
- [JavaScript][window&forms]
- javascript 封装ajax(多版本)
- com.fasterxml.jackson.core.JsonParseException: Unexpected character
- javaScript中的两个叹号(!!)
- JavaScript HTML DOM
- javascript数组去重
- 7、JavaScript总结——实现选项卡切换的效果
- html+js实现图片预览
- JS1 js获取dom元素方法
- 实体类和JSON对象之间相互转化
- js使用缓存
- Gson转json时忽略对某域的序列化
- 如何在web.xml中配置jsp的访问路径
- 浅谈json,自己初认识json,写下自己对其概念的理解。