js判断浏览器是否支持flash的方法

传统浏览器可以使用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插件:

var swf = navigator.plugins['Shockwave Flash'];

封装一个兼容性代码:

<span style="color:#0000ff;">function</span><span style="color:#000000;"> hasUsableSWF(){
</span><span style="color:#0000ff;">var</span><span style="color:#000000;"> swf;     
</span><span style="color:#0000ff;">if</span>(typeof window.ActiveXObject != "undefined"<span style="color:#000000;">){
        swf </span>= <span style="color:#0000ff;">new</span>  ActiveXObject("ShockwaveFlash.ShockwaveFlash"<span style="color:#000000;">);
    }</span><span style="color:#0000ff;">else</span><span style="color:#000000;">{
         swf </span>= navigator.plugins['Shockwave Flash'<span style="color:#000000;">];
    }
    </span><span style="color:#0000ff;">return</span> swf ? <span style="color:#0000ff;">true</span> : <span style="color:#0000ff;">false</span><span style="color:#000000;">;
};</span>

上面的hasUsableSWF函数检查浏览器是否支持flash,如果支持返回true, 否则返回false.

相关推荐