# js判断浏览器是否安装或启用了flash的方法

在传统浏览器,可以使用window.ActiveXObject来检查浏览器是否安装或启用了相关的控件。检查浏览器是否安装或启用了flash控件,首先需要先检查浏览器是否支持ActiveXObject,可以使用typeof检查window.ActiveXObject是否等于undefined,语法:

typeof window.ActiveXObject != "undefined"

如果,window.ActiveXObject不等于undefined,使用new ActiveXObject(“ShockwaveFlash.ShockwaveFlash”)返回flash控件对象。

var flashObj = new  ActiveXObject("ShockwaveFlash.ShockwaveFlash");

谷歌、火狐、微软Edge、Safari等现代浏览器不支持ActiveXObject,它们支持navigator.plugins检查浏览器插件,因此谷歌、火狐等浏览器都可以使用navigator.plugins检查浏览器是否启用flash插件,可以使用下面的代码返回flash插件对象:

var flashObj = navigator.plugins[\'Shockwave Flash\'];

封装一个兼容性方法:

function hasUsableFlash(){
	var flashObj;
	if(typeof window.ActiveXObject != "undefined"){
        flashObj= new  ActiveXObject("ShockwaveFlash.ShockwaveFlash");
    }else{
        flashObj= navigator.plugins[\'Shockwave Flash\'];
    }
    return flashObj? true : false;
}
var result= hasUsableFlash();
if(!result) {
	alert("您未安装flash插件,或您浏览未启用flash插件!")
}

# chrome浏览器启用flash插件的方法

目前,chrome浏览器默认是禁用flash插件的,如果想让某个网站启用flash插件,需要单独设置;下面以www.baidu.com网站为例:
1、禁用flash:

2、flash禁用状态下,执行hasUsableFlash方法:返回false;

3、启用flash:

4、flash启用状态下,执行hasUsableFlash方法:返回true;

5、注意:
1)如果点击“查看网站信息”的锁形图标,无法直接看到flash的设置功能,可点击“网站设置”,进入chrome://settings/content/siteDetails?site=https%3A%2F%2Fjuejin.im 页面进行设置;

2)启用或禁用flash插件,是无法用javascript控制的;

# 参考

https://www.bbsmax.com/A/rV57b6GXJP/


版权声明:本文为willingtolove原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/willingtolove/p/11241210.html