天天看點

js建立調用ocx對象的幾種方法,檢測ocx是否可用

1:建立ActiveX對象

   在web中使用ActiveX元件有兩種方法,一是如下

<HTML>

<HEAD>

<TITLE>rep_print_medcan.CAB</TITLE>

</HEAD>

<BODY>

<OBJECT ID="Rep_Print_MedCan21"

CLASSID="CLSID:C0558D51-6AFD-11D5-BF5C-005070024001"

CODEBASE="rep_print_medcan.CAB#version=1,0,0,25">

</OBJECT>

</BODY>

</HTML>

OBJECT标簽中,通過ID指點了對象的ID号,javascript可以使用該ID号來引用該對象,而classid用于辨別這個元件,每個ActiveX元件都有唯一一個用于表示他的ID号。而codebase指定的程式下載下傳到本地(在系統目錄的“Downloaded Program Files”子目錄下),然後調用元件程式的自注冊入口函數注冊到目前系統中,以後的建立都在本地進行,不再涉及codebase屬性

 使用以上的方法來建立ActiveX對象,有些參數設定需要手抖的填寫,麻煩,

2、另外可以使用javascript的ActiveXObject對象來建立,一般過程是var act=new ActiveXObject(proid),proid為該ActiveX的辨別号,是Classid的另一種表示方法

其中proid指在ocxctrl.cpp檔案下的:

// 初始化類工廠和 guid

IMPLEMENT_OLECREATE_EX(CtestOCX2Ctrl, "TESTOCX2.testOCX2Ctrl.1",

 0xe0d5a597, 0x336b, 0x4829, 0x84, 0xe0, 0x77, 0x43, 0x91, 0xc8, 0xe8, 0xdb)

紅色表示部分。

3、

         var _tempPlayer = null;

         _tempPlayer = window.document.createElement("object");

         _tempPlayer.classid = "clsid:358DE739-F39F-4832-9458-80FDE806F845";

         _tempPlayer.id = "realtime_player"+i; // 唯一辨別

         _tempPlayer.using = false; // 是否正在使用

         _tempPlayer.style.width = "100%";

         _tempPlayer.style.height = "100%";           

或者:

            /*var _tempPlayer = window.document.createElement("object");

            _tempPlayer.setAttribute("id","realtime_player"+i);

            _tempPlayer.setAttribute("classid","clsid:358DE739-F39F-4832-9458-80FDE806F845");

            _tempPlayer.setAttribute("width","100%");

            _tempPlayer.setAttribute("height","100%");

            _tempPlayer.using = false;  //>是否正在使用 

4、檢測ocx是否可用的方法

在js下是 var o = new ActiveXObject(ProgID);

IE下若ocx存在是object,否則是null

即:

var o = new ActiveXObject(ProgID);

if(o)

{

//存在

}

else

//不存在

參考html檔案代碼:http://files.cnblogs.com/lidabo/Page1.rar

繼續閱讀