Flash雖然用得少,但是有需求剔桨,就不得不用限匣,整理網(wǎng)上的資料,結(jié)合自己想法做個(gè)記錄
這個(gè)方法執(zhí)行后判斷瀏覽器的flash是否安裝历极,以及版本
function flashChecker() {
let hasFlash = 0; //是否安裝了flash
let flashVersion = 0; //flash版本
//document.all是頁(yè)面內(nèi)所有元素的一個(gè)集合窄瘟。
//document.all 頁(yè)面所有元素的集合,用來(lái)判斷是不是IE瀏覽器
if (document.all) {
//new ActiveXObject 對(duì)象僅用于實(shí)例化自動(dòng)化對(duì)象
let swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if (swf) {
hasFlash = 1;
VSwf = swf.GetVariable("$version");
flashVersion = parseInt(VSwf.split(" ")[1].split(",")[0]);
}
} else {
//返回一個(gè) PluginArray 類(lèi)型的對(duì)象, 包含了當(dāng)前所使用的瀏覽器安裝的所有插件
if (navigator.plugins && navigator.plugins.length > 0) {
let swf = navigator.plugins["Shockwave Flash"];
if (swf) {
hasFlash = 1;
let words = swf.description.split(" ");
for (let i = 0; i < words.length; ++i) {
if (isNaN(parseInt(words[i]))) continue;
flashVersion = parseInt(words[i]);
}
}
}
}
return {
f: hasFlash,
v: flashVersion
};
}
let fls = flashChecker();
let s = "";
if (fls.f) {
console.log("您安裝了flash,當(dāng)前flash版本為: " + fls.v + ".x");
} else {
console.log("您沒(méi)有安裝flash")
};
但是這個(gè)唯一蛋疼的地方是只有在flash插件運(yùn)行的時(shí)候才能識(shí)別到是否安裝和版本趟卸,但是無(wú)法判斷這個(gè)flash插件多會(huì)運(yùn)行了蹄葱,推薦一個(gè)方法:使用setInterval定時(shí)器,當(dāng)檢測(cè)到flash時(shí)锄列,清除這個(gè)定時(shí)器
let timer = setInterval(function () {
let hasFlash = 0;
let flashVersion = 0;
if (document.all) {
let swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if (swf) {
hasFlash = 1;
VSwf = swf.GetVariable("$version");
flashVersion = parseInt(VSwf.split(" ")[1].split(",")[0]);
}
} else {
if (navigator.plugins && navigator.plugins.length > 0) {
let swf = navigator.plugins["Shockwave Flash"];
if (swf) {
hasFlash = 1;
let words = swf.description.split(" ");
for (let i = 0; i < words.length; ++i) {
if (isNaN(parseInt(words[i]))) continue;
flashVersion = parseInt(words[i]);
}
}
}
}
let fls = flashChecker();
let s = "";
if (fls.f) {
console.log("您安裝了flash,當(dāng)前flash版本為: " + fls.v + ".x");
//當(dāng)檢測(cè)到瀏覽器的flash插件時(shí)图云,清除這個(gè)定時(shí)器
clearInterval(timer)
}
}, 5000)
如果判斷這個(gè)flash版本過(guò)低時(shí)候,需要安裝這個(gè)最新的flash的時(shí)邻邮,執(zhí)行如下代碼
//url可以寫(xiě)最新的flash安裝地址竣况,或者是其他服務(wù)器地址(將flash安裝包放到服務(wù)器上)
window.open('url')
如果瀏覽器默認(rèn)阻止彈出窗口,可以用下面這種寫(xiě)法
window.open('url','self')