1. 程式人生 > >在HTML網頁中插入ActiveX控制元件

在HTML網頁中插入ActiveX控制元件

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控制元件中的介面。