- if( document.all || dav.indexOf( 'Trident/' ) !== -1 ){\r
- acme.ActiveX = !!window[ 'ActiveXObject' ];\r
- acme._IE = parseFloat(dua.split('MSIE ')[1]) || parseFloat(dua.split('rv:')[1]) || parseFloat(dav.split('MSIE ')[1]) || 0;\r
- // IE11 の互換モードの dav にも Trident/7.0 が書かれているため互換モードか?判定ができる\r
- // 互換モードでは Silverlight でエラーが出る?\r
- acme.Trident = parseFloat(dav.split('Trident/')[1]) || 0;\r
- acme.IE = document.documentMode || acme._IE;\r
- tridentToVer = acme.Trident ? ( acme.Trident + 4 | 0 ) : acme._IE;\r
- acme.IECompat = /* acme.IE !== acme._IE || */ tridentToVer !== acme._IE && tridentToVer;\r
- acme.IE4 = acme.IE && acme.IE < 5;\r
- acme.IE5678 = 5 <= acme.IE && acme.IE < 9;\r
- acme.IE5 = 5 <= acme.IE && acme.IE < 5.5;\r
- acme.IE55 = 5.5 <= acme.IE && acme.IE < 6;\r
- acme.IE5x = acme.IE5 || acme.IE55;\r
- acme.IE6 = 6 <= acme.IE && acme.IE < 7;\r
- acme.IE7 = 7 <= acme.IE && acme.IE < 8;\r
- acme.IE8 = 8 <= acme.IE && acme.IE < 9;\r
- acme.IE9 = 9 <= acme.IE && acme.IE < 10;\r
- acme.MacIE = acme.Mac;\r
- acme.IEMobile = dua.toLowerCase().indexOf( 'iemobile' ) !== -1 || acme.WinCE;\r
- acme.WinPhone = dua.toLowerCase().indexOf( 'windows phone' ) !== -1 || 0 < dav.indexOf( 'ZuneWP' ); // ZuneWP は IEM のデスクトップモードで使用\r
- console.log( '>> IE : ' + acme.IE + ' ActiveX : ' + acme.ActiveX );\r
+ if( ( v = dav.split( 'Trident/' )[ 1 ] ) || document.all ){ // .all は Opera にもいるので Opera の判定が先\r
+ if( v = parseFloat( v ) )\r
+ /**\r
+ * IE11 の互換モードの navigator.appVersion にも Trident/7.0 が書かれているため互換モードか?判定ができるc \r
+ * @alias X.UA.Trident\r
+ * @type {number}\r
+ */\r
+ X_UA[ 'Trident' ] = v;\r
+ \r
+ if( window[ 'ActiveXObject' ] )\r
+ /**\r
+ * @alias X.UA.ActiveX\r
+ * @type {boolean}\r
+ */\r
+ X_UA[ 'ActiveX' ] = true;\r
+\r
+ v = parseFloat( dua.split( 'MSIE ' )[ 1 ] ) ||\r
+ parseFloat( dua.split( 'rv:' )[ 1 ] ) || 0;\r
+\r
+ tridentToVer = X_UA[ 'Trident' ] ? ( X_UA[ 'Trident' ] + 4 | 0 ) : v;\r
+\r
+ if( tridentToVer !== v ){\r
+ /**\r
+ * IE10 以上の互換モードを使用している場合、そのバージョン\r
+ * @alias X.UA.IEHost\r
+ * @type {number}\r
+ */ \r
+ X_UA[ 'IEHost' ] = tridentToVer;\r
+ };\r
+ /**\r
+ * documentモードを考慮したIEのバージョン\r
+ * @alias X.UA.IE\r
+ * @type {number}\r
+ */\r
+ X_UA[ 'IE' ] = v = document.documentMode || tridentToVer;\r
+\r
+ if( v < 4.5 ){\r
+ /**\r
+ * @alias X.UA.IE4\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IE4' ] = true;\r
+ } else\r
+ if( v < 5 ){\r
+ /**\r
+ * @alias X.UA.IE45\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IE45' ] = true;\r
+ } else\r
+ if( v < 5.5 ){\r
+ /**\r
+ * @alias X.UA.IE5\r
+ * @type {boolean}\r
+ */\r
+ X_UA[ 'IE5' ] = true; \r
+ } else\r
+ if( v < 6 ){\r
+ /**\r
+ * @alias X.UA.IE55\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IE55' ] = true; \r
+ } else\r
+ if( v < 7 ){\r
+ /**\r
+ * @alias X.UA.IE6\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IE6' ] = true; \r
+ } else\r
+ if( v < 8 ){\r
+ /**\r
+ * @alias X.UA.IE7\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IE7' ] = true; \r
+ } else\r
+ if( v < 9 ){\r
+ /**\r
+ * @alias X.UA.IE8\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IE8' ] = true; \r
+ } else\r
+ if( v < 10 ){\r
+ /**\r
+ * @alias X.UA.IE9\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IE9' ] = true;\r
+ };\r
+ \r
+ if( X_UA[ 'IE4' ] || X_UA[ 'IE45' ] ){\r
+ /**\r
+ * @alias X.UA.IE4x\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IE4x' ] = true;\r
+ };\r
+\r
+ if( X_UA[ 'IE5' ] || X_UA[ 'IE55' ] ){\r
+ /**\r
+ * @alias X.UA.IE5x\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IE5x' ] = true;\r
+ };\r
+\r
+ if( X_UA[ 'Mac' ] ){\r
+ /**\r
+ * @alias X.UA.MacIE\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'MacIE' ] = true;\r
+ };\r
+ \r
+ if( 0 < dua.toLowerCase().indexOf( 'iemobile' ) || X_UA[ 'WinCE' ] ){\r
+ /**\r
+ * @alias X.UA.IEMobile\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'IEMobile' ] = true;\r
+ };\r
+\r
+ if( 0 < dua.toLowerCase().indexOf( 'windows phone' ) || 0 < dav.indexOf( 'ZuneWP' ) ){\r
+ /**\r
+ * @alias X.UA.WinPhone\r
+ * @type {boolean}\r
+ */ \r
+ X_UA[ 'WinPhone' ] = true; // ZuneWP はデスクトップモードで登場する\r
+ };\r
+ \r
+ console.log( '>> IE : ' + v + ' ActiveX : ' + X_UA[ 'ActiveX' ] + ' IEHost : ' + X_UA[ 'IEHost' ] );\r