利用swfobject獲取瀏覽器FlashPlayer版本
阿新 • • 發佈:2019-01-02
二話不說,直接上程式碼:
function hasPlayerVersion() { //利用swfobject第三方API獲取FlashPlayer版本 var version = swfobject.getFlashPlayerVersion(); if (document.getElementById && version["major"] > 0) { //主版本最低支援11 if(version['major']<11) { return false; } } else { return false; } return true; }
這個程式碼經測試,在IE8,IE9,IE11以及Chrome上都可以正常執行無問題。
需要引入swfobject.js,這個玩意可以在http://code.google.com/p/swfobject/ 下載到zip包,裡面包含了例子
另外再提供一個方法,這個方法只能在IE上使用,只有IE認識
var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")
使用的時候注意下(這個不需要swfobject的支援)
/** * 判斷flash版本的級別 * @return */ function checkFlashVersion() { var hasFlash = 0; //是否安裝了flash var flashVersion = 0; //flash版本 try { var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); if(flash) { hasFlash = 1; var version = flash.getVariable("$version"); if(version) { version = version.split(" ")[1].split(","); flashVersion = [parseInt(version[0], 10), parseInt(version[1], 10), parseInt(version[2], 10)]; } } } catch (e) { } return { f: hasFlash, v: flashVersion }; } /** * 判斷是否安裝了高於某個版本的flashplayer */ function hasPlayerVersion(rv) { var fls = checkFlashVersion(); if(fls.f) { var pv = fls.v,v = rv.split("."); v[0] = parseInt(v[0], 10); v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0" v[2] = parseInt(v[2], 10) || 0; return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false; } else { return false; } }