読者です 読者をやめる 読者になる 読者になる

帰ってきたHolyGrailとHoryGrailの区別がつかない日記

はてなブログに帰って来ました

Flash判定スクリプトをwww.yahoo.comを参考にしてみる

javascript

すでにあるリソースの有効活用ってことで

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とかでもちょうどいいかもなぁ。

というわけでネタ探しをしている毎日なのであります。