拿我用的XMPPClient.ocx为例:html
《object classid="clsid:D6D2E2CC-2DB1-4361-AA 7C-3198C6B6F296" id="ocx01" name="ocx01" codebase="WEB-INF/lib/XMPPClient.ocx" width="32" height="32"》《/object》函数
这是大多数在页面上加.ocx控件的作法。那么那个classid怎么获得的?大多数网上的讨论并无给出。——估计是太EASY了,不过咱是菜鸟啊。工具
将控件注册后,(这一步却是讲解的人不少),“开始——运行——regedit”打开注册表,查找“XMPPClient.ocx”,能够看到这里给出了一串ID号,估计是这个了。按上面的格式设置,而后在.js文件中调用这个.ocx控件:ui
var m_ocx01 = document.getElementByIdx (“ocx01”);url
// 设置属性spa
m_ocx01.UserName = “hazard”;3d
…code
// 调用方法xml
var bReturn = m_ocx01.Login ();htm
到这里就要报错了:试了不少回,都是这个错误。属性能够读写,可函数不能调用。
解决办法:
用Visual Stadio 6.0的工具:OLE View,
在它的 Type Libraries中找到注册的这个控件。
能够看到它内部的组成:里面的那个uuid和刚才从注册表里找到的同样。
不过我要用的属性和方法都在那个coclass里面,而它的uuid和上面的不一样。
将《object》的classid改写,再次调用方法就成功了。
另:
这里面有不少的注册控件和组件。若是是* Library类型的,则能够用
var obj = new ActiveXObject (“COLBCATLib.COLBCatalog”);
的方法获得它的对象,而后直接操做就能够了。而* Control类型的,则只能用
var m_ocx01 = document.getElementByIdx (“ocx01”);
的方法获得。并且因为它不能直接建立coclass的对象,因此要注意uuid的变化。