OSDN Git Service

Version 0.6.141, fix X.UI.ScrollBox.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 02_XUA.js
index ecdbe23..52da87e 100644 (file)
@@ -9,7 +9,8 @@
  * @alias X.UA\r
  * @type {object}\r
  */\r
-var X_UA = X[ 'UA' ] = {};\r
+var X_UA = X[ 'UA' ] = {},\r
+       X_UA_classNameForHTML = 'js-enabled ';\r
 \r
 (function(){\r
        var dua  = navigator.userAgent,\r
@@ -289,62 +290,73 @@ var X_UA = X[ 'UA' ] = {};
                 * @alias X.UA.IECompat\r
                 * @type {number}\r
                 */\r
-               X_UA[ 'IECompat' ] = /* v !== X_UA[ '_IE' ] || */ tridentToVer !== X_UA[ '_IE' ] && tridentToVer;\r
+               if( v = tridentToVer !== X_UA[ '_IE' ] && tridentToVer ) X_UA[ 'IECompat' ] = v;\r
                /**\r
                 * @alias X.UA.IE4\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'IE4' ]      = v && v < 5;\r
+               if( v && v < 4.5 ) X_UA[ 'IE4' ] = true;\r
+               /**\r
+                * @alias X.UA.IE45\r
+                * @type {boolean}\r
+                */\r
+               if( v && 4.5 <= v && v < 5 ) X_UA[ 'IE45' ] = true;\r
+               /**\r
+                * @alias X.UA.IE4x\r
+                * @type {boolean}\r
+                */\r
+               if( X_UA[ 'IE4' ] || X_UA[ 'IE45' ] ) X_UA[ 'IE4x' ] = true;\r
                /**\r
                 * @alias X.UA.IE5\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'IE5' ]      = 5 <= v && v < 5.5;\r
+               if( 5 <= v && v < 5.5 ) X_UA[ 'IE5' ] = true;\r
                /**\r
                 * @alias X.UA.IE55\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'IE55' ]     = 5.5 <= v && v < 6;\r
+               if( 5.5 <= v && v < 6 ) X_UA[ 'IE55' ] = true;\r
                /**\r
                 * @alias X.UA.IE5x\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'IE5x' ]     = X_UA[ 'IE5' ] || X_UA[ 'IE55' ];\r
+               if( X_UA[ 'IE5' ] || X_UA[ 'IE55' ] ) X_UA[ 'IE5x' ] = true;\r
                /**\r
                 * @alias X.UA.IE6\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'IE6' ]      = 6 <= v && v < 7;\r
+               if( 6 <= v && v < 7 ) X_UA[ 'IE6' ] = true;\r
                /**\r
                 * @alias X.UA.IE7\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'IE7' ]      = 7 <= v && v < 8;\r
+               if( 7 <= v && v < 8 ) X_UA[ 'IE7' ] = true;\r
                /**\r
                 * @alias X.UA.IE8\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'IE8' ]      = 8 <= v && v < 9;\r
+               if( 8 <= v && v < 9 ) X_UA[ 'IE8' ] = true;\r
                /**\r
                 * @alias X.UA.IE9\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'IE9' ]      = 9 <= v && v < 10;\r
+               if( 9 <= v && v < 10 ) X_UA[ 'IE9' ] = true;\r
                /**\r
                 * @alias X.UA.MacIE\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'MacIE' ]    = X_UA[ 'Mac' ];\r
+               if( X_UA[ 'Mac' ] ) X_UA[ 'MacIE' ] = true;\r
                /**\r
                 * @alias X.UA.IEMobile\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'IEMobile' ] = dua.toLowerCase().indexOf( 'iemobile' ) !== -1 || X_UA[ 'WinCE' ];\r
+               if( dua.toLowerCase().indexOf( 'iemobile' ) !== -1 || X_UA[ 'WinCE' ] ) X_UA[ 'IEMobile' ] = true;\r
                /**\r
                 * @alias X.UA.WinPhone\r
                 * @type {boolean}\r
                 */\r
-               X_UA[ 'WinPhone' ] = dua.toLowerCase().indexOf( 'windows phone' ) !== -1 || 0 < dav.indexOf( 'ZuneWP' ); // ZuneWP は IEM のデスクトップモードで登場する\r
+               if( dua.toLowerCase().indexOf( 'windows phone' ) !== -1 || 0 < dav.indexOf( 'ZuneWP' ) ) X_UA[ 'WinPhone' ] = true; // ZuneWP は IEM のデスクトップモードで登場する\r
+               \r
                console.log( '>> IE : ' + v + ' ActiveX : ' + X_UA[ 'ActiveX' ] );\r
                // TODO XBox360, XBox1, Modern or Desktop, Standalone\r
                return;\r
@@ -600,6 +612,45 @@ var X_UA = X[ 'UA' ] = {};
                };\r
 })();\r
 \r
+(function(){\r
+       var k, v;\r
+       if( X_UA[ 'IE45' ] || X_UA[ 'IE4' ] ){\r
+               if( X_UA[ 'Mac' ] ){\r
+                       X_UA_classNameForHTML = 'Mac';\r
+               } else\r
+               if( X_UA[ 'WinCE' ] ){\r
+                       // TODO CE3 の ie4 と WM の ie4 の分岐\r
+                       X_UA_classNameForHTML = 'WinCE';\r
+               } else\r
+               if( X_UA[ 'Win' ] ){\r
+                       X_UA_classNameForHTML = 'Win';\r
+               } else {\r
+                       X_UA_classNameForHTML = 'Other';\r
+               };              \r
+               \r
+               X_UA_classNameForHTML += 'IE4';\r
+               \r
+               if( X_UA[ 'IE45' ] ){\r
+                       X_UA_classNameForHTML += '5';\r
+               };\r
+\r
+               if( X_UA[ 'ActiveX' ] ){\r
+                       X_UA_classNameForHTML += 'ActiveX';\r
+               };\r
+               \r
+       } else {\r
+               for( k in X_UA ){\r
+                       v = X_UA[ k ];\r
+                       if( v ){\r
+                               X_UA_classNameForHTML += k + ' ';\r
+                               if( v !== true ){\r
+                                       X_UA_classNameForHTML += k + v + ' ';\r
+                               };\r
+                       };\r
+               };              \r
+       };\r
+})();\r
+\r
 var X_UA_DOM   = {},\r
        X_UA_EVENT = {},\r
        X_UA_HID   = {};\r