flashplayerの有無判別

flashplayerの有無判別は非常にややこしい・・・。どこかのサイトにあったものをコピペではっておく。

function FlashPlayerVer(){
    //初期設定
    var flashplayer_ver = 0;
    //IE以外の場合
    if(navigator.plugins && navigator.mimeTypes['application/x-shockwave-flash']){
        var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
        //Flash Playerがインストールされている場合
        if(plugin){flashplayer_ver = parseInt(plugin.description.match(/\d+\.\d+/));}
    }
    //IEの場合、もしくはFlash Playerがインストールされていない場合
    else{
    //IEでFlash Playerがインストールされている場合
    try{
        var flashOCX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").match(/([0-9]+)/);
        if(flashOCX){flashplayer_ver = parseInt(flashOCX[0]);}
    }catch(e){}
    }
    //Flash Playerがインストールされていない、もしくはバージョンが6以下の場合
    if(flashplayer_ver <= 6){flashplayer_ver = 0;}
    return flashplayer_ver;
}

FlashPlayerVer() を実行したときに 0 が返ってきたら入っていないということに。 他にもいろいろJSあるけど、これシンプルで結構好き。