Javascript调用ocx控件

网上已经有不少相关的论述,不过最近我作个B/S的项目,仍是费了很多劲。是他们写的太笼统,仍是我过于愚钝呢,呵呵。

 

       拿我用的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”,能够看到
Javascript调用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

到这里就要报错了:
Javascript调用ocx控件

    试了不少回,都是这个错误。属性能够读写,可函数不能调用。

解决办法:

       用Visual Stadio 6.0的工具:OLE View,

Javascript调用ocx控件

 

    在它的 Type Libraries中找到注册的这个控件。

Javascript调用ocx控件Javascript调用ocx控件

 

    能够看到它内部的组成:里面的那个uuid和刚才从注册表里找到的同样。

Javascript调用ocx控件

 

    不过我要用的属性和方法都在那个coclass里面,而它的uuid和上面的不一样。

Javascript调用ocx控件

 

将《object》classid改写,再次调用方法就成功了。

 

另:

Javascript调用ocx控件

这里面有不少的注册控件和组件。若是是* Library类型的,则能够用

    var obj = new ActiveXObject (“COLBCATLib.COLBCatalog”);

的方法获得它的对象,而后直接操做就能够了。而* Control类型的,则只能用

    var m_ocx01 = document.getElementByIdx (“ocx01”);

的方法获得。并且因为它不能直接建立coclass的对象,因此要注意uuid的变化。

相关文章
相关标签/搜索