传统浏览器能够使用window.ActiveXObject检查浏览器是否启用相关的控件。检查浏览器是否启用flash控件,须要先检查浏览器是否支持ActiveXObject,能够使用typeof检查window.ActiveXObject是否等于undefined,语法:浏览器
typeof window.ActiveXObject != "undefined"
若是,window.ActiveXObject不等于undefined,使用new ActiveXObject("ShockwaveFlash.ShockwaveFlash")返回flash控件。函数
谷歌、火狐、微软Edge、Safari等现代浏览器不支持ActiveXObject,它们支持navigator.plugins检查浏览器插件,所以谷歌、火狐等浏览器均可以使用navigator.plugins检查浏览器是否启用flash插件,能够使用下面的代码返回flash插件:spa
var swf = navigator.plugins['Shockwave Flash'];
封装一个兼容性代码:插件
function hasUsableSWF(){ var swf; if(typeof window.ActiveXObject != "undefined"){ swf = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); }else{ swf = navigator.plugins['Shockwave Flash']; } return swf ? true : false; };
上面的hasUsableSWF函数检查浏览器是否支持flash,若是支持返回true, 不然返回false.code