Skip to content

Latest commit

 

History

History
43 lines (37 loc) · 1.28 KB

检测插件.md

File metadata and controls

43 lines (37 loc) · 1.28 KB

检测插件

检测浏览器中是否安装了特定的插件是一种最常见的检测例程。对于非 IE 浏览器,可以使用plugins 数组来达到这个目的。该数组中的每一项都包含下列属性。

  • name :插件的名字
  • description :插件的描述
  • filename :插件的文件名
  • length :插件所处理的 MIME 类型数量
//检测插件(在 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(hasPlugin("Flash"));
//检测 QuickTime
alert(hasPlugin("QuickTime"));

检测 IE 中的插件比较麻烦,因为 IE 不支持 Netscape 式的插件。在 IE 中检测插件的唯一方式就是使用专有的 ActiveXObject 类型,并尝试创建一个特定插件的实例。IE 是以 COM对象的方式实现插件的,而 COM对象使用唯一标识符来标识。

function hasIEPlugin(name){
    try {
    	new ActiveXObject(name);
    	return true;
    } catch (ex){
   		return false;
    }
}
//检测 Flash
alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));
//检测 QuickTime
alert(hasIEPlugin("QuickTime.QuickTime"));