空前のFlash Playerバージョン判定スクリプトブームなわけですが、便乗して僕も乗ってみたいと思います。いろんなところからのものを集めてきたものですけど実際に使っているスクリプトであったりします。結構古い環境もサポートしてます。
FlashPlayer= {
version : (function(){
var version='0.0.0';
if(navigator.plugins && navigator.mimeTypes['application/x-shockwave-flash']){
var plugin=navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin;
if (plugin && plugin.description) {
version=plugin.description.replace(/^[A-Za-z\s]+/, '').replace(/(\s+r|\s+b[0-9]+)/, ".");
}
} else { // Win IE
var x='';
try {
var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
x=axo.GetVariable("$version");
} catch(e) {
try {
axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
x="WIN 6,0,21,0";
axo.AllowScriptAccess="always";
x=axo.GetVariable("$version");
} catch(e) {
if (!x.match(/^WIN/)) {
try {
axo=null;
axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
x=axo.GetVariable("$version");
} catch(e) {
if (axo) {
x="WIN 3,0,18,0";
} else {
try {
axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
x="WIN 2,0,0,11";
} catch(e) {
x="WIN 0,0,0,0";
}
}
}
}
}
}
version=x.replace(/^WIN /,'').replace(/,[0-9]+$/,'').replace(/,/g,'.');
}
if (version.match(/^[0-9]+\.[0-9]+\.[0-9]+$/)) {
return version;
} else {
return '0.0.0';
}
})()
}
使い方
FlashPlayer.version
で値が取れます。また、Flash Playerが未インストール時は0.0.0が返ります。
あと、どうやらIE用のFlash Player10 debugバージョンだとうまく値が取れなかったりするようです。ActiveXObjectの生成でコケるっぽい...んだけども、まだ手を出せていません。これはなんとかしないとなぁ。。
参考
Google Adsense
Social bookmark comment : 0
No comment.
Comment : 0
Trackback : 0
- TrackBack URL for this entry
- http://blog.katsuma.tv/mt-tb.cgi/191
- Listed below are links to weblogs that reference
- Flash Playerバージョン判定スクリプト from blog.katsuma.tv
2009/01/07 (Wed)