拿我用的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的變化。