通过 new ActiveXObject 创建的 ocx 控件调用方法失败

Cynhard85 2014-02-12 07:30:35
自己写了一个ocx控件,在JS里调用它的方法,用getElementById的方式可以成功调用,但是用 new ActiveXObject 的方式总是失败,求大神指教。具体代码如下:

<javascript>
//var ukeyObj = document.getElementById("myocx");// 通过getElementById得到的ukeyObj调用GetUKey()没有问题
var ukeyObj = new ActiveXObject("UK.ukCtrl.1"); // 通过new ActiveXObject得到的ukeyObj调用GetUKey()会报错
var ukey = ukeyObj.GetUKey();
alert(ukey);
</javascript>
<body>
<object id="myocx" classid="clsid:CC88EA7D-DAE1-44E1-9956-5392E594C1A6"
style="display:none;"></object>
</body>
...全文
484 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cynhard85 2014-02-17
  • 打赏
  • 举报
回复
首先感谢楼上的回复! 原因找到了,写OCX控件时需要重载COleControl::IsInvokeAllowed并返回TRUE,否则在OCX控件初始化之前是不能调用控件的方法的。
wz_307 2014-02-13
  • 打赏
  • 举报
回复
报什么错? LZ可以尝试降低IE的安全级别
网页自由打印控件使用方法功能:本控件可以在浏览器中直接实现任意定位打印;用途:适用于B/S系统的报表打印,尤其适用于票据打印和套打;现在这个新编写的DLL控件比以前发布的OCX更稳定使用前,先注册一下,运行目录下的“注册控件.bat”即可注册然后在网页中直接调用卸载时运行“反注册控件.bat”使用方法:在网页中可以直接用JavaScript和VBScript调用控件JavaScript调用语句:TML = new ActiveXObject("TML.TMLi");VBScript调用语句:set TML=CreateObject("TML.TMLi") ‘创建对象,DLL库名为TML,其中TMLi为对象控件中包含两个函数addTXT "作者,字体,字号,X坐标,Y坐标,文字"p dmPaperWidth文档宽,dmPaperLength文档长addTXT语句为添加文字到打印文档中,参数有"作者,字体,字号,X坐标,Y坐标,文字"p语句为打印函数,格式:dmPaperWidth文档宽,dmPaperLength文档长以下为完整的VBScript打印程序:(查看源代码) <script language="vbscript">set TML=CreateObject("TML.TMLi") ‘创建对象,DLL库名为TML,其中TMLi为对象TML.addTXT "李天盟,华文中宋,24,100,200,额外认为" ‘本addTXT语句为添加文字到打印文档中TML.addTXT "李天盟,华文中宋,12,110,300,额外认为" ‘格式为"作者,字体,字号,X坐标,Y坐标,文字"TML.addTXT "李天盟,华文中宋,12,120,320,┏━━━━━━━━━━━━━━━━┓"TML.addTXT "李天盟,华文中宋,12,120,325,┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ "TML.p 3000,2000 ‘语句p为打印函数,格式:dmPaperWidth文档宽,dmPaperLength文档长set TML=nothing

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧