OSDN Git Service

Version 0.6.178, fix X.KB for IE5-, X.HTMLAudio for ChromeWV & AOSP.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 02_XUA.js
index da6f8e2..0d03ee6 100644 (file)
@@ -573,12 +573,12 @@ var X_UA = X[ 'UA' ] = {},
        };\r
        \r
        // Android 標準ブラウザ AOSP と ChromeWeb View, Sブラウザがある\r
-       if( X_UA[ 'Android' ] &&\r
-               ( dua.indexOf( 'Chrome\/' ) === -1 || dua.indexOf( 'Version\/' ) !== -1 ) ){ // Chrome/ を含まない または Version/ を含む\r
+       if( ( v = X_UA[ 'Android' ] ) &&\r
+               ( dua.indexOf( 'Chrome\/' ) < 0 || 0 < dua.indexOf( 'Version\/' ) ) ){ // Chrome/ を含まない または Version/ を含む\r
                \r
                /* if( window.chrome ){  // Android3.1 のAOSPブラウザで .chrome がいた、、、\r
                } else */\r
-               if( dua.indexOf( 'Version\/' ) === -1 && ( v = parseFloat( dua.split( 'Chrome\/' )[ 1 ] ) ) ){\r
+               if( dua.indexOf( 'Version\/' ) < 0 && 0 < dua.indexOf( 'Chrome\/' ) ){\r
                        /**\r
                         * Android 標準ブラウザ Chrome WebView ブラウザ\r
                         * @alias X.UA.ChromeWV\r
@@ -593,15 +593,14 @@ var X_UA = X[ 'UA' ] = {},
                // CustomElement の有無で判定\r
                if( document[ 'registerElement' ] ){\r
                        // UA が偽装された Chrome WebView\r
-                       X_UA[ 'ChromeWV' ] = tv;\r
-                       alert( 'UA が偽装された Chrome WebView' );\r
+                       X_UA[ 'ChromeWV' ] = v;\r
                } else {\r
                        /**\r
                         * Android 標準ブラウザ AOSP\r
                         * @alias X.UA.AOSP\r
                         * @type {number}\r
                         */\r
-                       X_UA[ 'AOSP' ] = X_UA[ 'Android' ];                     \r
+                       X_UA[ 'AOSP' ] = v;\r
                };\r
                \r
                /*\r
@@ -775,6 +774,16 @@ if( document.getElementById ){
        };\r
 };\r
 \r
+var X_elmHtml = document.documentElement ||\r
+                               X_UA_DOM.W3C ? document.getElementsByTagName( 'html' )[ 0 ] :\r
+                               X_UA_DOM.IE4 ? document.all.tags( 'html' )[ 0 ] : null,\r
+                       \r
+       X_elmHead = \r
+                               X_UA_DOM.W3C ? document.getElementsByTagName( 'head' )[ 0 ] :\r
+                               X_UA_DOM.IE4 ? document.all.tags( 'head' )[ 0 ] : null,\r
+       \r
+       X_elmBody;\r
+\r
 if( navigator.msPointerEnabled || navigator.pointerEnabled ) X_UA_HID.POINTER = true;\r
 if( !X_UA_HID.POINTER && window.ontouchstart !== undefined ) X_UA_HID.TOUCH   = true;\r
 \r
@@ -812,13 +821,13 @@ var X_Script_VBS_ENABLED = X_UA[ 'Windows' ] && !X_UA[ 'WinCE' ] && !X_UA[ 'WinP
  * @type {object}\r
  */\r
 X[ 'Script' ] = {\r
-       'try' : X_Script_try\r
+       'tryCatch' : X_Script_try\r
 };\r
 \r
 if( X_UA[ 'IE' ] < 9 && X_Script_VBS_ENABLED ){\r
        (function( lines ){\r
                var s = document.createElement( 'script' );\r
-               document.getElementsByTagName("head")[ 0 ].appendChild( s );\r
+               X_elmHead.appendChild( s );\r
                s.type = 'text/vbscript';\r
                s.text = lines.join( '\n' );\r
                \r
@@ -849,7 +858,8 @@ if( X_UA[ 'IE' ] < 9 && X_Script_VBS_ENABLED ){
 \r
 function X_Script_try( func, args ){\r
        if( X_UA[ 'IE' ] < 5.5 ){\r
-               return func.apply( {}, args );\r
+               //return func.apply( {}, args );\r
+               return;\r
        };\r
        return ( new Function( 'f,a', 'try{return f.apply({},a)}catch(e){}' ) )( func, args || [] );\r
 };\r
@@ -883,6 +893,5 @@ if( X_UA[ 'IE' ] < 7 ){ // error @ NN7.2
                                 * multipleIEs IE6 standalone 版では不可, IE5.5 は可,,,\r
                                 * @alias X.UA.ieExeComError */                 \r
                                ( X_UA[ 'ieExeComError' ] = true )\r
-                       //eval( 'var a=1;try{document.execCommand&&document.execCommand("BackgroundImageCache",!1,!0)}catch(e){a=0}!a' )\r
                );\r
 };\r