2

私はフラッシュプレーヤー10.2.161.23の特定のバージョンがクライアントのマシン上か、私のjavascriptのコードからインストールされているかどうかを確認する必要があります。クライアントのシステムは10.1.102.64などのように、同じ「メジャーバージョン」と他の多くのバージョンがあります..私は次のコードスニペットを試してみましたシステムに同じ "メジャーバージョン"(javascriptで)の多くのバージョンがある場合、特定のバージョンのフラッシュプレーヤーの存在を確認するにはどうすればよいですか?

for(var i = 10; i > 0; i--) 
     {  
      try 
      {  
       flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+String(i));  
      } 
      catch(e) 
      { 
       alert("in ctach"); 
      } 

      version = flash.GetVariable("$version"); 
       alert(version); 

     } 

クライアントが自分のシステム上10.1.102.64 & 10.2.161.23を持っており、私の上記のコードは認識しています10.1.102.64と同じですが、同じ「メジャーバージョン番号:」以外のバージョンは認識されません。

は私が新しい ActiveXObjectを( "MacromediaFlashPaper.MacromediaFlashPaper")を使用することができます。 代わりの Shockwaveflash.shockwaveflash。 これは影響を及ぼしますか?フラッシュプレーヤー 検出したいバージョンは、64ビット バージョンです。

誰でも私に理由とそれを修正してください。 ありがとうございます。

答えて

0

はあなたがhttp://code.google.com/p/swfobject/を見てしたいと思う次のスクリプト

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

を試してみてください。 フラッシュ埋め込みのために積極的に使用されるJavaScriptライブラリです。あなたは ブラウザ間の問題に対処する必要はありません。 SWFObject、フラッシュのバージョン検出を使用して は同じくらい簡単です:

function flashdetect(){ 
    var version = deconcept.SWFObjectUtil.getPlayerVersion(); 
    var major_version = version["major"]; 
    var revision = version["rev"]; 
} 
+0

私はこれに新しいですので、私の質問は愚かであるなら、私はご容赦します。私のJavaScriptコードにSWFObjectライブラリを追加する方法。いくつかの.JSファイルをダウンロードして、src = "library.js"に含めるよりもかまいません。親切に私に知らせてください。 – codeLover

+0

それは愚かではない、我々はすべてどこか初心者であった。このhttp://code.google.com/p/swfobject/wiki/documentationの全面的なヘルプは、swfobject.jsの組み込み方法と使用方法を示しています。 'ます。'、あなたのlibrary.jsにそれをコピーしない、より良い別々のファイルとしてそれを維持、あなたのウェブページのタグにこの行を含めてください。 – DhruvPathak