如何判断客户端是否已安装播放器或插件
作者:闪吧 类型:原创 来源:闪吧
如何判断客户端是否已安装播放器或插件
解决思路: 其实每个播放器或插件都是以ActivX控件的形式调用的,而且都有clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 这样的控件ID号,而在IE的默认行为clientCaps中有isComponentInstalled方法可以判断指定控件是否已被安装。
具体步骤: 代码示例:
<script>
function isInsalled(oID){
with(event.srcElement){//给事件发生的对象添加clientCaps默认行为
addBehavior(’#default#clientcaps’)
//根据控件的ID检测是否已经安装,是的话继续检测控件版本,否则提示"未安装"
isComponentInstalled(oID,"componentid")?alert(’已安装,版本:’+getComponentVersion(oID,"componentid")):alert("未安装")
}}
</script>
<button onclick="isInsalled(’{D27CDB6E-AE6D-11cf-96B8-444553540000}’)">Micromedia Flash Player</button>
<button onclick="isInsalled(’{22d6f312-b0f6-11d0-94ab-0080c74c7e95}’)">Window Media Player</button>
特别提示
代码运行后,单击按钮,将弹出警告框,提示播放器插件是否已安装。图2.4.4是单击【Window Media Player】按钮后的检测结果。

图2.4.4 检测是否已安装Mediw Player插件的结果
特别说明
本例问题的解决,主要是依靠IE的强大的默认行为clientCaps。在单击按钮时调用isInsalled函数,用addBehavior方法给该按钮添加clientCaps行为,然后利用clientCaps行为的isComponentInstalled方法判断指定控件是否已安装,如果已安装,继续用getComponentVersion方法获取已安装的控件版本号。
clientCaps 行为的方法说明如下:
addComponentRequest 添加指定组件到将要安装的组件队列。
clearComponentRequest 清除所有请求下载的组件队列。
compareVersions 比较两个版本号。
doComponentRequest 下载所有用addComponentRequest方法添加到队列的组件。
getComponentVersion 获取指定组件的版本号。
isComponentInstalled 获取指定组件是否已安装。
责任编辑:kissall 时间:2005年8月29日
- 最近更新
