Flash Playerバージョン判定スクリプト

空前の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の生成でコケるっぽい...んだけども、まだ手を出せていません。これはなんとかしないとなぁ。。

参考

関連広告

Trackbacks: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

Home > Javascript > Flash Playerバージョン判定スクリプト

Search
Feeds

Return to page top