關於ActiveX控制元件開發、js呼叫
阿新 • • 發佈:2019-01-10
控制元件製作:
32位控制元件製作
64位控制元件製作
參考:一、建立;二、介面;三、js呼叫 說明:64位控制元件的js呼叫我按上述教程製作,呼叫可以,但是控制元件中沒有文章中說的控制元件中顯示的那行文字,不知道什麼問題,應該不算是太成功。 注意:32位編譯軟體(vs6.0和vs2010預設平臺 )編寫的控制元件,只能在32位IE瀏覽器上使用;64位編譯軟體(vs2010編譯軟體更換為64位)編寫的控制元件只能在64位IE瀏覽器上使用;可能目前已經解決該問題,但是我還沒有找到辦法,所有我目前就這麼認為! 控制元件註冊: 編譯器直接執行除錯,如果沒有報錯就會自動註冊成功; 如果用cmd命令註冊的話: 32位的需要將控和依賴的dll全部拷貝到C:\Windows\System32目錄下,然後shift+滑鼠右鍵點選空白處,選擇在此處開啟命令視窗;輸入regsvr32 ***.ocxjs呼叫控制元件:
CLSID的獲取:
我查了網上好多資料,都說註冊成功之後,在登錄檔查詢***.ocx即可找到,但是我建議將找到的每一個CLSID找到,都嘗試一下,因為我就是因為 這個問題和瀏覽器32和64位問題導致搞了一週。。。一般會找到4個不同的CLSID,然後就新建一個html頁面, 加入不知道要呼叫的方法可以用OLE/View先點File然後按下圖,找到自己註冊的ocx控制元件然後開啟,可以找到方法。html程式碼例子:
寫的簡單示例:32位的;64位的; 如果不行就將瀏覽器的安全設定,(包括網路和本地以及可信站點)關於ActiveX的設定全部設定為啟用或提示!<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>