Flash判定スクリプトをwww.yahoo.comを参考にしてみる
すでにあるリソースの有効活用ってことで
var Flash = function () { var o = {installed:0, version:[]}, description, oActiveX, nMajor, nMinor; if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") { o.pluginType = "npapi"; description = navigator.plugins["Shockwave Flash"].description; if (typeof description != "undefined") { description = description.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); nMajor = parseInt(description.replace(/^(.*)\..*$/, "$1"), 10); nMinor = /r/.test(description) ? parseInt(description.replace(/^.*r(.*)$/, "$1"), 10) : 0; o.version = [nMajor, nMinor]; o.installed = 1; } } else if (window.ActiveXObject) { o.pluginType = "ax"; try { oActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); } catch (e) { try { oActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); o.version = [6, 0]; o.installed = 1; oActiveX.AllowScriptAccess = "always"; } catch (e) { if (o.version[0] == 6) {o.installed=1; return; } } try { oActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); } catch (e) { } } if (typeof oActiveX == "object") { description = oActiveX.GetVariable("$version"); if (typeof description != "undefined") { description = description.replace(/^\S+\s+(.*)$/, "$1").split(","); o.version = [parseInt(description[0], 10), parseInt(description[2], 10)]; o.installed = 1; } } } return o; }();
これコピペすれば
if(Flash.installed) { alert('インストールされているFlashのバージョンは'+Flash.version[0]+'です'); } else { alert('Flashプレイヤーがインストールされていません'); }
って感じで使えます。
http://www.yahoo.com/ のソースからコピペしてきただけの手抜きですみません><(参考ってレベルじゃねーぞ)
バージョン判別の部分は結構参考になると思うのでみなさんもざっとソースを読んでみるといいかもしれません。
このぐらいの規模ならRoppongi.JSとかでもちょうどいいかもなぁ。
というわけでネタ探しをしている毎日なのであります。