2011-09-14 24 views
2

この私のHTMLが、ブラウザがFlashをサポートしていないならば、私はフラッシュ部分フラッシュのブラウザサポートを検出するにはどうすればよいですか?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>Untitled Document</title> 
     <script type="text/javascript"> 
      if(typeof navigator.plugins['Shockwave Flash']!=='undefined'){ 
       alert('support'); 
      }else{ 
       alert('not support'); 
      } 
     </script> 
    </head> 
    <body> 
     <!-- Empty --> 
    </body> 
</html> 
+3

PHPで行うには何を持っていないこと? –

答えて

3

PHPでのFlashサポートを検出する方法はありませんで画像を置き換えたいです。 phpはサーバー側の言語であり、Webブラウザーによる要求のみを表示します。 Flashのインストールの有無にかかわらず要求が同じように見えるため、phpやサーバー側のプログラムで2つのケースを区別する方法はありません。

Flashが毎回利用可能な場合は、HTML/CSS/JavaScriptにフォールバックするウェブサイトを送信する必要があります。そして、あなたが高度なアプリケーション(マップアプリケーション、3D、および/またはビデオチャットを考えている)を持っていない限り、あなたはメニューのような簡単なことのために最初にFlashを使用すべきではありません。

+0

jqueryで検出できますか? –

+0

@vipulはい。 JavaScriptとjQuery(JavaScriptで書かれています)は**クライアントサイド**で実行されるため、あなたの質問のコードのようにプラグイン情報にアクセスすることができます。 – phihag

4

ここでは、次のとおりです。

var _flash_installed = ((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) != false)); 
+1

PHP(サーバーサイド)ソリューションを指していた以前の(編集前の)質問だったので、これは純粋にJavaScript(クライアント側)の解決策であることを強調する必要があります。とにかく、非常に良い(しかし単純な)ソリューション、Ofer Zeligに感謝します! :] – trejder

0

この機能は、ユーザーがFlashをサポートしている場合は、ブラウザを知ることができます。

function is_flash_support() { 
    var flash_support = false; 
    try { 
     var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); 
     if(fo) { 
      flash_support = true; 
     } 
    } catch (e) { 
     if(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] != undefined && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) { 
      flash_support = true; 
     } 
    } 
    return flash_support; 
} 
関連する問題