参考:http://blog.youkuaiyun.com/jimin/article/details/2009883
ActiveX控件为XXXX.ocx
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<OBJECT ID="ActiveXControlTest11" WIDTH=100 HEIGHT=51
CLASSID="CLSID:96908503-3BEB-4E2B-AA87-F44DC492BC0E">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
</BODY>
</HTML>
每一个ActiveX Control都会有一个对应的CLSID,该ID是唯一的。通过OBJECT的CLASSID属性指定ActiveX Contorl的ID,就可以找到相应的ActiveX Control。每一个ActiveX Control都必须先注册,再使用。上述实例可以正常运行是因为在编译ActiveX工程的时候,VS2005会自动完成对ActiveX Control的注册。ActiveX Contorl的注册和反注册也可以通过实用工具regsvr32完成。
如HTML中对OBJECT加入CODEBASE属性,就可以让IE自动完成对ActiveX Control的注册。修改后的HTML脚本如下:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<OBJECT ID="ActiveXControlTest11" WIDTH=100 HEIGHT=51
CLASSID="CLSID:96908503-3BEB-4E2B-AA87-F44DC492BC0E"
CODEBASE="release/ActiveXControlTest1.ocx">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
</BODY>
</HTML>
通过JS调用如下:
var obj_activex = document.createElement('Object');
obj_activex.classid = 'CLSID:9737E206-C8E5-49F3-B3BB-E4FD3C77ACA4';
obj_activex.WebOnLine(10000,window.location.hostname,window.location.port || 443,path);
其中WebOnLine为ActiveX控件中的接口。