2013-08-17 45 views
7

Chức năng này luôn luôn trả "0" trong IELàm thế nào để phát hiện máy nghe nhạc flash phiên bản bằng js

function getFlashVersion(){ 
var flash = 'None'; 
// Count down from 10. 
for(var i = 10; i > 0; i--) 
{ 
    try{ 
    flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+String(i)); 
    }catch(e){ 
    //console.log(e); 
    } 
    if(flash != 'None') 
    return flash.GetVariable("$version"); 

} 
return 0; 
} 

nhưng Chrome trở 11.8.r800

làm thế nào để phát hiện phiên bản flash player trong IE.

Trả lời

7

Tôi nghĩ bạn sẽ có may mắn hơn bằng cách sử dụng thư viện swfobject. Sử dụng thư viện này, bạn có thể chỉ cần làm như sau để có được phiên bản flash trên các trình duyệt:

// returns a JavaScript object 
var playerVersion = swfobject.getFlashPlayerVersion(); 
// access the major, minor and release version numbers via their respective properties 
var majorVersion = playerVersion.major; 
+0

IE nói "'swfobject' chưa được xác định" –

+0

Bạn đã bao gồm tệp 'swfobject.js' chưa n liên kết được cung cấp? Thư viện này xác định chức năng swfobject ... – fijas

4

Đây là những gì được sử dụng trong một dự án của tôi,

trình tốt cũng trên IE

function getFlashVersion(){ 
    // ie 
    try { 
    try { 
     // avoid fp6 minor version lookup issues 
     // see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/ 
     var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6'); 
     try { axo.AllowScriptAccess = 'always'; } 
     catch(e) { return '6,0,0'; } 
    } catch(e) {} 
    return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1]; 
    // other browsers 
    } catch(e) { 
    try { 
     if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){ 
     return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1]; 
     } 
    } catch(e) {} 
    } 
    return '0,0,0'; 
} 

var version = getFlashVersion().split(',').shift(); 
if(version < 10){ 
    alert("Lower than 10"); 
}else{ 
    alert("10 or higher"); 
} 
1

Hãy thử điều này

var a, b, c, y ='length',v = "name",t = "indexOf",m = "match"; 
    if (c=window.navigator.plugins) 
     for (var d = 0; d < c[y] && !b; d++) { 
      var e = c[d]; - 1 < e[v][t]("Shockwave Flash") && (b = e.description) 
     } 
    if (!b) try { 
     a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"), b = a.GetVariable("$version") 
    } catch (g) {} 
    if (!b) try { 
     a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"), b = "WIN 6,0,21,0", a.AllowScriptAccess = "always", b = a.GetVariable("$version") 
    } catch (ca) {} 
    if (!b) try { 
     a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"), b = a.GetVariable("$version") 
    } catch (l) {} 
    b && 
     (a = b[m](/[\d]+/g)) && 3 <= a[y] && (b = a[0] + "." + a[1] + " r" + a[2]); 
    console.log(b) || void 0