X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F01_core%2F02_XUA.js;h=8302b9762d0bdde55acf2e72c6ca6b40f1ad5f80;hb=ecfded871abcf085bbc2b862352232190b87fd27;hp=b99223ae60dcd2bee160e20ee04799f95ebf6e0d;hpb=7973f3ff61f1ef5bd9732f527b175010d0c0971b;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/01_core/02_XUA.js b/0.6.x/js/01_core/02_XUA.js index b99223a..8302b97 100644 --- a/0.6.x/js/01_core/02_XUA.js +++ b/0.6.x/js/01_core/02_XUA.js @@ -136,26 +136,65 @@ var X_UA = X[ 'UA' ] = {}, X_UA[ 'webOS' ] = true; // webOS } else if( sys.indexOf( 'Win' ) + 1 ){ - console.log( 'Win' ); - /** - * @alias X.UA.Windows - * @type {boolean} - */ - X_UA[ 'Windows' ] = true; + switch( sys ){ + case 'WinCE' : + /** + * @alias X.UA.WinCE + * @type {boolean} + */ + X_UA[ sys ] = true; + break; case 'Win16' : case 'Win32' : case 'Win64' : - case 'WinCE' : /** * @alias X.UA.Win16 * @alias X.UA.Win32 * @alias X.UA.Win64 - * @alias X.UA.WinCE * @type {boolean} */ X_UA[ sys ] = true; + + if( v = dav.split( 'Windows NT 10' )[ 1 ] ){ + switch( v.substr( 0, 2 ) ){ + case '.0' : v = 10; break; + default : v = '?'; + }; + } else + if( v = dav.split( 'Windows NT ' )[ 1 ] ){ + switch( v.substr( 0, 3 ) ){ + case '6.3' : v = 8.1; break; + case '6.2' : v = 8; break; + case '6.1' : v = 7; break; + case '6.0' : v = 'Vista'; break; + case '5.2' : v = '2003|XP64'; break; + case '5.1' : v = v.indexOf( '5.1; SV1' ) ? 'XP' : 'XPSP2'; break; + case '5.0' : v = v.indexOf( '5.01' ) ? 2000 : '2kSP1'; break; + case '4.0' : v = 'NT'; break; + default : v = '?'; + }; + } else + if( v = dav.split( 'Windows ' )[ 1 ] ){ + switch( v.substr( 0, 2 ) ){ + case '98' : v = v.indexOf( '98; Win 9x 4.90' ) ? '98|98SE' : 'ME'; break; + case '95' : v = 95; break; + case '3.' : v = parseFloat( v ); break; + default : v = '?'; + }; + } else { + v = '?'; + }; + + /** + * 10, 8.1, 8, 7, Vista, 2003|XP64, XPSP2, XP, 2kSP1, 2000, ME, 98|98SE, 95, ? + * @alias X.UA.Windows + * @type {number|string} + */ + X_UA[ 'Windows' ] = v; + break; }; + // winRT } else if( sys.indexOf( 'Mac' ) + 1 ){ @@ -193,7 +232,23 @@ var X_UA = X[ 'UA' ] = {}, */ X_UA[ 'Linux' ] = true; - if( ( i = dua.indexOf( 'Android' ) ) !== -1 ){ + if( dua.indexOf( 'Android ' ) !== -1 ){ + v = dua.split( 'Android ' )[ 1 ].split( '.' ); + /** + * @alias X.UA.AndroidMajor + * @type {number} + */ + X_UA[ 'AndroidMajor' ] = parseFloat( v[ 0 ] ) || 0; + /** + * @alias X.UA.AndroidMinor + * @type {number} + */ + X_UA[ 'AndroidMinor' ] = parseFloat( v[ 1 ] ) || 0; + /** + * @alias X.UA.AndroidPatch + * @type {number} + */ + X_UA[ 'AndroidPatch' ] = parseFloat( v[ 2 ] ) || 0; /** * Firefox で Version が取れない! * http://bizmakoto.jp/bizid/articles/1207/31/news004.html @@ -205,7 +260,7 @@ var X_UA = X[ 'UA' ] = {}, * @alias X.UA.Android * @type {number} */ - X_UA[ 'Android' ] = parseFloat( dua.substr( i + 8 ) ) || 0.1; + X_UA[ 'Android' ] = X_UA[ 'AndroidMajor' ] + X_UA[ 'AndroidMinor' ] / 10; console.log( '>> Android : ' + X_UA[ 'Android' ] ); }; }; @@ -486,57 +541,43 @@ var X_UA = X[ 'UA' ] = {}, console.log( '>> Gecko : ' + X_UA[ 'Gecko' ] ); }; - // TODO Blink - if( window.chrome ){ - /** - * @alias X.UA.Blink - * @type {number} - */ - X_UA[ 'Blink' ] = tv; - console.log( '>>Blink : ' + X_UA[ 'Blink' ] ); - - } else - if( dav.indexOf( 'Konqueror' ) !== -1 ){ - /** - * @alias X.UA.Khtml - * @type {number} - */ - X_UA[ 'Khtml' ] = tv; - console.log( '>>Khtml : ' + X_UA[ 'Khtml' ] ); - - } else - if( ( i = dua.indexOf( 'Android ' ) ) !== -1 ){ + if( ( dua.indexOf( 'Linux; U; Android ' ) !== -1 || dua.indexOf( 'Linux; Android ' ) !== -1 ) && + ( dua.indexOf( 'Chrome\/' ) === -1 || dua.indexOf( 'Version\/' ) !== -1 ) ){ // Chrome/ を含まない または Version/ を含む /** * Android 標準ブラウザ * @alias X.UA.AndroidBrowser * @type {number} */ - X_UA[ 'AndroidBrowser' ] = i = parseFloat( dua.substr( i + 8 ) ) || 0.1; + X_UA[ 'AndroidBrowser' ] = X_UA[ 'Android' ]; + + v = X_UA[ 'AndroidMajor' ]; + /** * @alias X.UA.AndroidBrowser1 * @type {boolean} */ - X_UA[ 'AndroidBrowser1' ] = 1 <= i && i < 2; + X_UA[ 'AndroidBrowser1' ] = v === 1; /** * @alias X.UA.AndroidBrowser2 * @type {boolean} */ - X_UA[ 'AndroidBrowser2' ] = 2 <= i && i < 3; + X_UA[ 'AndroidBrowser2' ] = v === 2; /** * @alias X.UA.AndroidBrowser3 * @type {boolean} */ - X_UA[ 'AndroidBrowser3' ] = 3 <= i && i < 4; + X_UA[ 'AndroidBrowser3' ] = v === 3; /** * @alias X.UA.AndroidBrowser4 * @type {boolean} */ - X_UA[ 'AndroidBrowser4' ] = 4 <= i && i < 5; + X_UA[ 'AndroidBrowser4' ] = v === 4; /** * @alias X.UA.AndroidBrowser5 * @type {boolean} */ - X_UA[ 'AndroidBrowser5' ] = 5 <= i && i < 6; + X_UA[ 'AndroidBrowser5' ] = v === 5; + console.log( '>> AndroidBrowser : ' + X_UA[ 'Android' ] ); i = parseFloat(dua.split('WebKit\/')[1]); @@ -545,9 +586,41 @@ var X_UA = X[ 'UA' ] = {}, * @type {number} */ X_UA[ 'AndroidWebkit' ] = i; - alert( 'AudioSprite調査:Android標準ブラウザ Webkit Version ' + i ); + //alert( 'AudioSprite調査:Android標準ブラウザ Webkit Version ' + i ); + + if( window.chrome ){ + //X_UA[ 'Blink' ] = X_UA[ 'AndroidChromeBrowser' ] = tv; + } else + if( v = parseFloat(dua.split('Chrome\/')[1]) ){ + X_UA[ 'Chrome' ] = X_UA[ 'AndroidChromeBrowser' ] = v; + }; + //if( window[ 'webkitRequestFileSystem' ] ) alert( 'requestFileSystem' ); + + //alert( 'html.style.WebkitAppearance:' + ( document.documentElement.style[ 'WebkitAppearance' ] === undefined ) + ' win.chrome:' + !!( window.chrome ) ); + } else + + // TODO Blink + if( window.chrome ){ // Android3.1 の標準ブラウザで .chrome がいた、、、 + /** + * @alias X.UA.Blink + * @type {number} + */ + X_UA[ 'Blink' ] = tv; + console.log( '>>Blink : ' + X_UA[ 'Blink' ] ); + + } else + if( dav.indexOf( 'Konqueror' ) !== -1 ){ + /** + * @alias X.UA.Khtml + * @type {number} + */ + X_UA[ 'Khtml' ] = tv; + console.log( '>>Khtml : ' + X_UA[ 'Khtml' ] ); + + } else + if( i = parseFloat(dua.split('WebKit\/')[1]) ){ /** * @alias X.UA.WebKit