【转】javascript检测浏览器插件

转:https://www.cnblogs.com/nangua/archive/2011/07/23/2114849.html

检测浏览器中是否安装了特定的插件,对于非IE的浏览器,可以使用plugins数组检测浏览器安装插件的情况:

plugins属性:

  • name:插件的名称
  • description:插件的描述
  • filename:插件的文件名
  • length:插件所处理的MIME类型数量

使用plugins检测浏览器插件时,需要循环迭代plugins在中的每一个插件并将插件的name与给定的名称比较

//检测非IE浏览器中的插件
function hasPlugin(name){
      name = name.toLowerCase();
      for(var i=0; i<navigator.plugins.length; i++){
            if(navigator.plugins[i].name.toLowerCase().indexOf(name) > -1){
                   return true;
            }
      }
       return false;
}
//检测flash
alert(hasPlug("flash"));

  检测IE中的插件就比较麻烦了,因为IE不支持Netscape式的插件,因此检测IE中的插件只能使用ActiveXObject类型,IE是以COM对象的方式实现插件的,而COM对象使用唯一标识符来标识,因此要检测IE中的插件就必须知道其COM标识符。

//检测IE中的插件
function hasPlugin(name){
      try{
            new ActiveXObject(name);
            return true;
      }catch(ex){
            return false;
      }
}
//检测flash,flash的标识符:ShockwaveFlash.ShockwaveFlash
alert(hasPlug("ShockwaveFlash.ShockwaveFlash"));

  要检测所有的浏览器中的插件,将以上两个方法整合就可以了。

原文地址:https://www.cnblogs.com/guxingzhe/p/15107129.html