ATHENA's profile闲人勿入BlogListsGuestbookMore Tools Help

Blog


    判断是否安装某个控件,插件

    不是每个都可以,不知道为什么有的不行,比如RealPlayer的ActiveX就不行,有待研究。
     
    <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>
     
    主要是依靠IE的强大的默认行为clientCaps。在单击按钮时调用isInsalled函数,用addBehavior方法给该按钮添加clientCaps行为,然后利用clientCaps行为的isComponentInstalled方法判断指定控件是否已安装,如果已安装,继续用getComponentVersion方法获取已安装的控件版本号。 
    addBehavior 给元素附加一个行为。
    isComponentInstalled 检索指定组件(插件、控件)是否可用。
    getComponentVersion 获取指定组件的版本号。