# 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/