カテゴリー
Flash

FlashPlayerのバージョン判定JavaScriptを修正しよう

現状のFlashPlayerはver9なのです 正…

現状のFlashPlayerはver9なのです
正確には 9.0.124.0 (2008.4.21時点)

これをたとえばFlashPlayer 6以降が入っていれば見れますよ〜 という意味で

var ver = 6;
var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
if(parseInt(plugin.description.substring(plugin.description.indexOf(".")-1)) >= ver){

てな感じで書いたりするとダメです

1文字目で判定してはいけません
たぶん、かなり近い将来困ります。

こんな感じで判定しましょう

誤)
if(parseInt(plugin.description.substring(plugin.description.indexOf(“.”)-1)) >= ver){

正)
if(parseInt(plugin.description.match(/\d+\.\d+/)) >= ver){

当たり前ですが、10の1の位は0です。

●AC_RunActiveContent.jsのバージョン取得方法は とても正しいですね
当たり前ですが、、

if(isIE && isWin && !isOpera) {
	// Given "WIN 2,0,0,11"
	tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
	tempString        = tempArray[1];			// "2,0,0,11"
	versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
} else {
	versionArray      = versionStr.split(".");
}
var versionMajor      = versionArray[0];
var versionMinor      = versionArray[1];
var versionRevision   = versionArray[2];
if (versionMajor > parseFloat(reqMajorVer)) {
	return true;

Download SWFObject 1.5 も正しいですね

PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));

独自に書いてる人は注意ということで