检测浏览器中是否安装了特定的插件,对于非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"));
要检测所有的浏览器中的插件,将以上两个方法整合就可以了。