转: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" )); |
要检测所有的浏览器中的插件,将以上两个方法整合就可以了。