將ActiveX控件嵌入HTML網頁中的方法很簡單,在網頁適當位置添加如下代碼:
<object id=”videoPlugin” class="objectClass" classid="clsid:BC06B658-5DD5-4DA4-8A5B-F7ECB1A3FC8C" codebase="explorer/lib/bsrPlugin.cab#version=2,2,0,1"></object> |
每一個ActiveX Control都會有一個對應的CLSID,該ID是唯一的。通過OBJECT的CLASSID屬性指定ActiveX Control的ID,然後IE就可以根據CLSID找到相應的ActiveX Control。
爲了能夠找到ActiveX Control,每一個ActiveX Control都必須先註冊,再使用。ActiveX Contorl的註冊和反註冊可以通過實用工具regsvr32來完成,但是,我們不需要這麼做,因爲當IE發現<object>標籤時,會自動加載codebase指定URL下的ActiveX Control並註冊到本地的控件庫中。
問題1:一個很現實的問題,當我們的ActiveX Control升級了,該如何發佈,並使得客戶端的ActiveX Control也自動更新、升級呢?
看見上面codebase中的參數“#version”了嗎?是的,IE會檢查本地控件庫中對應CLSID的ActiveX Control的版本,看是否比該參數小,如果小於該參數值,則自動的下載新版本的ActiveX Control,然後反註冊低版本的ActiveX Control,再註冊新版本的ActiveX Control。Ok,現在客戶端的ActiveX Control升級了。
問題2:如何查看當前安裝的ActiveX Control的版本號?
對於Window XP系統,在C:\WINDOWS\Downloaded Program Files目錄下可以找到已安裝的ActiveX Control。右鍵查看屬性,有三個標籤頁,在常規標籤頁中的ID爲CLSID;相關內容標籤頁顯示了該控件依賴的dll或其他ActiveX Control信息;版本標籤頁中有版本號、作者、版權等信息。
問題3:ActiveX Control的發佈形式?
一般爲cab打包格式。內容有ActiveX Control的ocx實體和相關的依賴dl,以及描述信息。如圖:
問題4:Javascript如何操作ActiveX Control?
可以使用window.document.getElementById(),返回該ActiveX Control的引用。然後操作該引用添加/解除事件,調用ActiveX Control的方法,也可以給ActiveX Control對象的屬性賦值。
//獲得ActiveX Control引用 var videoPlugin = window.document.getElementById(”videoPlugin”); //給ActiveX Control添加事件映射 videoPlugin.attachEvent("OnMouseHover",function(lx, ly){hoverAX(lx,ly,1)}); //調用ActiveX Control的方法 var res = videoPlugin.Open(vparam); //給ActiveX Control屬性賦值 videoPlugin.startTime = “2009-8-26”; |