From: http://blog.163.com/haizai219@126/blog/static/4441255520097264447968/
1. 摘要:
在企业应用中,为了实现一些特殊的功能,如播放自有协议的视频,我们需要在传统的HTML网页中插入ActiveX控件,由ActiveX控件来满足需求功能。
2. 步骤:
l 首先的实现一个ActiveX控件,可以使用很多种方式来实现,这里不做介绍。
l 将ActiveX控件嵌入HTML网页中。
3. 说明:
将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并注册到本地的控件库中。
4. 延伸
问题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 : Javas
可以使用window.document.getElementById(),返回该ActiveX Control的引用。然后操作该引用添加/解除事件,调用ActiveX Control的方法,也可以给ActiveX Control对象的属性赋值。
//获得ActiveX Control引用 var videoPlugin = window.document.getElementById(”videoPlugin”); //给ActiveX Control添加事件映射 videoPlugin.attachEvent("On //调用ActiveX Control的方法 var res = videoPlugin.Open(vparam); //给ActiveX Control属性赋值 videoPlugin.startTime = “2009-8-26”; |
问题5:ActiveX Control是否可以通过JavaS
请参照:激活 ActiveX 控件。