首页 > 代码库 > JS 检测浏览器中是否安装了特定的插件
JS 检测浏览器中是否安装了特定的插件
1、检测非IE浏览器
可以使用plugins数组来达到这个目的,例:
1 //检测插件(在IE中无效) 2 function hasPlugin(name){ 3 name = name.toLowerCase(); 4 for(var i=0;i<navigator.plugins.length;i++) 5 { 6 if(navigator.plugins[i].name.toLowerCase().indexOf(name)>-1) 7 { 8 return true; 9 } 10 } 11 return false; 12 } 13 //检测Flash 14 alert(hasPlugin("Flash"));
2、检测IE浏览器
因为IE不支持Netscape式的插件。在IE中检测插件唯一的方式就是使用专有的ActiveXObject类型,并尝试创建一个特定插件的实例。IE是以COM对象的方式使用插件的,而COM对象使用唯一标识符来标识。因此,要检查特定的插件就必须知道其特定的标识符。如Flash的标识符是ShockwaveFlash.ShockwaveFlash。
1 //检测IE中的插件 2 function hasIEPlugin(name) 3 { 4 //用try-catch进行实例化,因为创建未知的COM对象会导致抛出错误,如果实例化成功返回true,否则抛出异常返回false 5 try { 6 new ActiveXObject(name); 7 return true; 8 } catch (ex) { 9 return false; 10 } 11 } 12 //根据Flash标识符,检测Flash插件 13 alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));
3、检测所有浏览器
先使用不针对IE的检测插件的方法,再使用针对IE的检测插件的方法,只要任何一个方法检测到将会返回true,否则返回false。
1 //检测所有浏览器中的Flash 2 function hasFlash() 3 { 4 var result = hasPlugin("Flash");//先检测非IE浏览器 5 if(!result) 6 { 7 result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");//再检测IE 8 } 9 return result; 10 } 11 //检测Flash 12 alert(hasFlash());
JS 检测浏览器中是否安装了特定的插件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。