VTuberになったプログラマーの魂の残滓

こいつ……もう意識が……!!

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

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