OSDN Git Service

Version 0.6.104, fix X_shortcut & etc.
authoritozyun <itozyun@user.sourceforge.jp>
Mon, 13 Oct 2014 20:04:54 +0000 (05:04 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Mon, 13 Oct 2014 20:04:54 +0000 (05:04 +0900)
24 files changed:
0.6.x/js/01_core/01_X.js
0.6.x/js/01_core/02_XUA.js
0.6.x/js/01_core/03_XType.js
0.6.x/js/01_core/04_XObject.js
0.6.x/js/01_core/13_XEventDispatcher.js
0.6.x/js/01_core/14_XTimer.js
0.6.x/js/01_core/15_XSystem.js
0.6.x/js/01_core/16_XViewPort.js
0.6.x/js/02_dom/00_XDoc.js
0.6.x/js/02_dom/02_XNode.js
0.6.x/js/02_dom/03_XDomEvent.js
0.6.x/js/02_dom/05_XNodeAttr.js
0.6.x/js/02_dom/06_XNodeCSS.js
0.6.x/js/02_dom/08_XNodeSelector.js
0.6.x/js/02_dom/22_XTreeBuilder.js
0.6.x/js/03_plugin/00_XPlugin.js
0.6.x/js/04_util/01_XNinjaIframe.js
0.6.x/js/04_util/03_XUtilImage.js
0.6.x/js/05_net/00_XNet.js
0.6.x/js/05_net/01_XNetXHR.js
0.6.x/js/05_net/02_XNetJSONP.js
0.6.x/js/05_net/04_XNetImage.js
0.6.x/js/20_ui/05_XUI_Gesture.js
0.6.x/js/20_ui/15_ScrollBox.js

index 97ef4e9..2685af2 100644 (file)
@@ -1,26 +1,36 @@
 \r
-if( !window['console'] || ( window.parent && window.parent.log ) ) console = { log : function(a){\r
-       var win, elm;\r
-       //alert(a);\r
-       if( window.parent ){\r
-               elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' );\r
-               elm && ( elm.innerHTML = a + '<br>' + elm.innerHTML );\r
-       };\r
-} };\r
+if( !window['console'] || ( window.parent && window.parent.log ) )\r
+       console = { log : function(a){\r
+               var win, elm;\r
+               //alert(a);\r
+               if( window.parent ){\r
+                       elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' );\r
+                       elm && ( elm.innerHTML = a + '<br>' + elm.innerHTML );\r
+               };\r
+       } };\r
 \r
 var undefined,\r
-       X = new Function( 'return X._shortcut && X._shortcut.apply( X._shortcut, arguments )' ),\r
        X_TEMP = { onSystemReady : [] },\r
        X_shortcutFunction,\r
        X_shortcutContext;\r
 \r
-X.VERSION = '0.6.89';\r
+function X( v ){\r
+       if( X.Type.isFunction( v ) ){\r
+               X.ViewPort.listenOnce( X.Event.XDOM_READY, v );\r
+       } else\r
+       if( X_shortcutFunction ){\r
+               return X_shortcutFunction.apply( X_shortcutContext || X, arguments );\r
+       };\r
+};\r
+\r
+X.VERSION = '0.6.103';\r
                \r
 X.bootTime = + new Date;\r
 \r
 X.emptyFunction = new Function;\r
 \r
-               // defer の場合もあるので、document.readyState を見る MacIE で false\r
+// TODO defer の場合もあるので、document.readyState を見る\r
+// MacIE で false\r
 X.inHead = (function( s ){\r
        if( !s ) return false;\r
        if( !s.length ) return false; // Safari1.3 312.8 でerror\r
index 41a5bc3..e84f289 100644 (file)
@@ -226,15 +226,15 @@ var X_UA = (function( n, undefined ){
        };\r
        \r
        //http://www.useragentstring.com/pages/Iris/\r
-       acme.Iris     = dua.toLowerCase().indexOf( 'iris' ) !== -1;\r
+       if( dua.toLowerCase().indexOf( 'iris' ) !== -1 ) acme.Iris = true;\r
        \r
-       acme.EInk =\r
-               // Kobo Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/533.1 (KHTML, like Gecko) Verson/4.0 Mobile Safari/533.1 (Kobo Touch)\r
+       if( // Kobo Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/533.1 (KHTML, like Gecko) Verson/4.0 Mobile Safari/533.1 (Kobo Touch)\r
                dua.indexOf( 'Kobo' ) !== -1 ||\r
                // Kindle paperwhite Mozilla/5.0 (X11; U; Linux armv7l like Android; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/533.2+ Kindle/3.0+\r
                dua.indexOf( 'Kindle' ) !== -1 ||\r
                // Sony Reader Mozilla/5.0 (Linux; U; ja-jp; EBRD1101; EXT) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1\r
-               dua.indexOf( 'EBRD' ) !== -1;   \r
+               dua.indexOf( 'EBRD' ) !== -1\r
+                ) acme.EInk = true;    \r
        \r
        return acme;\r
 })( navigator ),\r
@@ -242,13 +242,12 @@ var X_UA = (function( n, undefined ){
 X_UA_DOM   = {},\r
 X_UA_EVENT = {},\r
 X_UA_HID   = {};\r
-X_UA.IECompat && alert( X_UA.IE + ' ' + X_UA._IE + ' Tri:' + X_UA.Trident );\r
+//X_UA.IECompat && alert( X_UA.IE + ' ' + X_UA._IE + ' Tri:' + X_UA.Trident );\r
 \r
 /*\r
  * http://d.hatena.ne.jp/t-uchima/20051003/p1\r
  * MacIEにはattachEventが一応あるけどwindow.attachEventとdocument.attachEventしかなく他の要素にはattachEventはない。\r
  */\r
-\r
 if( X_UA.IE4 && X_UA.IE < 5 ){ // ie4 & iemobi4 & macie4.x\r
        X_UA_DOM.IE4   = true;\r
        X_UA_EVENT.IE4 = true;\r
@@ -300,7 +299,7 @@ X.UA = X_UA;
 if( X_UA.IE < 7 ){ // error @ NN7.2\r
        // bonus: hotfix for IE6 SP1 (bug KB823727)\r
        // multipleIEs IE6 standalone 版では不可, IE5.5 は可,,,\r
-       X_UA.IE4 || X.UA.MacIE ?\r
+       X_UA.IE4 || X_UA.MacIE ?\r
                document.execCommand && document.execCommand( 'BackgroundImageCache', false, true ) :\r
                (function(){\r
                        X_UA.IE_EXECOM_ERROR = eval( 'var a=1;try{document.execCommand&&document.execCommand("BackgroundImageCache",!1,!0)}catch(e){a=0}!a' );\r
index 1d7bca1..f3ede40 100644 (file)
@@ -19,9 +19,9 @@ X.Type = {
        \r
        isArray :\r
                new Function( 'v',\r
-                       X.UA.IE < 5.5 ?\r
+                       X_UA.IE < 5.5 ?\r
                                'return v&&v.push===Array.prototype.push' : // win ie5-, MacIE5.2\r
-                       X.UA.IE ?\r
+                       X_UA.IE ?\r
                                'return v&&Object.prototype.toString.call(v)==="[object Array]"' :\r
                                'return v instanceof Array'\r
                ),\r
@@ -48,7 +48,7 @@ X.Type = {
        \r
        isHTMLElement :\r
                new Function( 'v',\r
-                       ( X.UA.IE4 || X.UA.MacIE ) ?\r
+                       ( X_UA.IE4 || X_UA.MacIE ) ?\r
                                'return v&&v.tagName&&v.insertAdjacentHTML&&true' : // ie4 or MacIE5.23, v.all <- error\r
                        window[ 'HTMLElement' ] ?\r
                                'return v instanceof HTMLElement' :\r
@@ -64,7 +64,7 @@ X.Type = {
                function( v ){\r
                        if( v && v.constructor === window.Image ) return true;\r
                        if( v && window.HTMLImageElement && v.constructor === window.HTMLImageElement ) return true; // ie6- は constructor が undef、HTMLImageElement が undef なので、HTMLElement の存在確認が必要\r
-                       if( X.UA.WebKit < 525.13 ){ // Safari3-\r
+                       if( X_UA.WebKit < 525.13 ){ // Safari3-\r
                                if( v && v.src !== undefined && v.onload !== undefined && X.Type.isNumber( v.height ) && X.Type.isNumber( v.width ) && X.Type.isBoolean( v.complete ) ){\r
                                        return true;\r
                                };\r
index 3e57b52..8c8b82e 100644 (file)
@@ -1,5 +1,5 @@
 \r
-var X_Object_inObject = X.UA.IE < 5.5 ? // TODO JScript で判定\r
+var X_Object_inObject = X_UA.IE < 5.5 ? // TODO JScript で判定\r
        (function( name, obj ){\r
                var p;\r
                if( obj[ name ] ) return true;\r
index bd69138..19a52af 100644 (file)
@@ -207,15 +207,14 @@ X.EventDispatcher =
                /**\r
                 * delay(ミリ秒)後にイベントを dispatch する。戻り値は uid = X.Timer.add() のタイマーID(数値)。X.Timer.remove(uid) でタイマーを解除して dispatch を中止できる。\r
                 * @this {X.EventDispatcher}\r
-                * @return {number}\r
-                * @param {number=} delay ms 省略した場合は 0 として扱う asyncDispatch( 'myevent' ) -> asyncDispatch( 0, 'myevent' )\r
-                * @param {(eventHash|string|number)=} e\r
+                * @param {(number|eventHash|string)=} delay ms 省略した場合は 0 として扱う asyncDispatch( 'myevent' ) -> asyncDispatch( 0, 'myevent' )\r
+                * @param {(eventHash|string|number)=} e イベントを表す数値、文字列、{ type : XXX, ... } なオブジェクト\r
+                * @return {number} X.Timer.add() の戻り値\r
                 */                     \r
                        asyncDispatch : function( delay, e ){\r
                                if( delay && e === undefined ){\r
                                        e = delay;\r
                                        delay = 0;\r
-                                       console.log( 'lazy : ' + e );\r
                                };\r
                                return X.Timer.add( delay, 1, this, this.dispatch, [ e ] );\r
                        }\r
@@ -483,9 +482,9 @@ var X_EventDispatcher_actualAddEvent =
        // Days on the Moon DOM Events とブラウザの実装 \r
        // http://nanto.asablo.jp/blog/2007/03/23/1339502\r
        // Safari 2 では関数オブジェクトしか EventListener として使えませんが、Safari のナイトリービルドでは handleEvent メソッドを持つオブジェクトも EventListener として使えるようです。\r
-       X_UA_EVENT.W3C /* && ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 ) */ ? // Safari3-\r
+       X_UA_EVENT.W3C /* && ( X_UA.WebKit < 525.13 || X_UA.Opera7 || X_UA.NetFront < 4 ) */ ? // Safari3-\r
                (function( that, type, raw, list ){\r
-                       if( that._isXHR && X.UA.Opera < 12 ){\r
+                       if( that._isXHR && X_UA.Opera < 12 ){\r
                                // Opera11- の XHR は event オブジェクトが返らないため, eventType 毎に callback を指定する addEventListener もない\r
                                raw[ 'on' + type ] = X_Callback_create( that, X_EventDispatcher_dispatch, [ type ] );\r
                        } else\r
@@ -558,9 +557,9 @@ function X_EventDispatcher_removeEvent( that, type, raw, list, skip ){
 };\r
 \r
 var X_EventDispatcher_actualRemoveEvent =\r
-       X_UA_EVENT.W3C /*&& ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 )*/ ? // Safari3-\r
+       X_UA_EVENT.W3C /*&& ( X_UA.WebKit < 525.13 || X_UA.Opera7 || X_UA.NetFront < 4 )*/ ? // Safari3-\r
                (function( that, type, raw, list, skip ){\r
-                       if( that._isXHR && X.UA.Opera < 12 ){\r
+                       if( that._isXHR && X_UA.Opera < 12 ){\r
                                X_Callback_correct( raw[ 'on' + type ] );\r
                                raw[ 'on' + type ] = '';\r
                        } else  \r
@@ -679,7 +678,7 @@ var X_EventDispatcher_actualHandleEvent =
                        if( ret & X.Callback.PREVENT_DEFAULT ){\r
                                this._tag === 'A' && this._rawObject.blur();\r
                                e.preventDefault();\r
-                               if( X.UA.WebKit < 525.13 ){ // Safari3-\r
+                               if( X_UA.WebKit < 525.13 ){ // Safari3-\r
                                        if( e.type === 'click' || e.type === 'dbclick' ){\r
                                                X_EventDispatcher_safariPreventDefault = true;\r
                                        };\r
@@ -688,7 +687,7 @@ var X_EventDispatcher_actualHandleEvent =
                        };\r
                });\r
 \r
-if( X.UA.WebKit < 525.13 ){ // Safari3-\r
+if( X_UA.WebKit < 525.13 ){ // Safari3-\r
        document.documentElement.onclick =\r
        document.documentElement.ondbclick = function( e ){\r
                        if( X_EventDispatcher_safariPreventDefault ){\r
index 9d4a849..379ed35 100644 (file)
@@ -190,7 +190,7 @@ X.Timer = {
 // --- implements ---------------------------------------------------------- //\r
 // ------------------------------------------------------------------------- //\r
 \r
-if( X.UA.IE4 || X.UA.MacIE ){\r
+if( X_UA.IE4 || X_UA.MacIE ){\r
        X.Timer[ '_' ] = X_Timer_onTimeout;\r
        X_Timer_onTimeout = 'X.Timer._()';\r
 };\r
@@ -295,7 +295,7 @@ function X_Timer_compareQueue( a, b ){
 \r
 // http://havelog.ayumusato.com/develop/javascript/e528-ios6_scrolling_timer_notcall.html\r
 // iOS6 スクロール中のタイマー発火絡みのバグ備忘\r
-if( X.UA.iOS ){\r
+if( X_UA.iOS ){\r
        window.addEventListener( 'scroll', function(){\r
                var last, now;\r
                if( X_Timer_timerId ){\r
index b244a35..0331531 100644 (file)
@@ -11,14 +11,22 @@ var X_System = X_Class_override(
                        \r
                }\r
        }\r
-);\r
+),\r
+\r
+X_System_javascriptScore;\r
 \r
 // beforeunload\r
 // unload\r
 \r
 X_TEMP.onRearchEndOfScript = function(){\r
        var callbacks = X_TEMP.onSystemReady,\r
-               i = callbacks.length;\r
+               i     = callbacks.length,\r
+               now   = X_Timer_now(),\r
+               speed = now - X.bootTime;\r
+       \r
+       X_System_javascriptScore = speed;\r
+       console.log( 'js score ' + speed );\r
+       \r
        delete X_TEMP.onRearchEndOfScript;\r
        delete X_TEMP.onSystemReady;\r
        \r
index 8f65140..5161c23 100644 (file)
@@ -9,7 +9,7 @@ var X_ViewPort_readyState,
        X_ViewPort_vScrollbarSize,
        X_ViewPort_hScrollbarSize,
        
-       X_Dom_detectFontSize = !( X.UA.IE < 9 || X.UA.iOS ) && function(){
+       X_Dom_detectFontSize = !( X_UA.IE < 9 || X_UA.iOS ) && function(){
                        var size = X_Node_fontSizeNode._rawObject.offsetHeight;
                        if( X_ViewPort_baseFontSize !== size ){
                                X_ViewPort_baseFontSize && X_ViewPort.asyncDispatch( { type : X.Event.BASE_FONT_RESIZED, fontSize : size, w : X_ViewPort_width, h : X_ViewPort_height } );
@@ -20,7 +20,7 @@ var X_ViewPort_readyState,
        X_ViewPort_orientationFlag,     
        X_Dom_orientationchange = window[ 'orientation' ] !== undefined && function( e ){
                X_ViewPort_orientationFlag = true;
-               !X.UA.Android && X_ViewPort_resize();
+               !X_UA.Android && X_ViewPort_resize();
                //console.log( '-- orientationchange : ' + X.ViewPort.getSize[ 0 ] + ' ' + X.ViewPort.getSize[ 1 ] );
        },
        
@@ -133,7 +133,7 @@ X.ViewPort = {
        // Safari2.0.4では標準・互換どちらも document.body
                
                X_Node_body._updateTimerID && X_Node_startUpdate();
-               /*X.UA.Opera ?
+               /*X_UA.Opera ?
                        ( document.documentElement && document.documentElement.clientWidth ?
                                new Function( 'return[document.documentElement.clientWidth,document.documentElement.clientHeight]' ) :
                                new Function( 'return[document.body.clientWidth,document.body.clientHeight]' )
@@ -204,7 +204,7 @@ X.ViewPort = {
  */
                var X_ViewPort_resize =
                        // iOS もループで回す,,,iOS3.1.3, iOS6 で確認
-                       X.UA.IE < 9 || X.UA.iOS ?
+                       X_UA.IE < 9 || X_UA.iOS ?
                                (function(){
                                        var size;
                                        if( !X_ViewPort_lock ){
@@ -297,7 +297,7 @@ X.ViewPort = {
                        
                        X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_XTREE, function(){
                                X_ViewPort_readyState = X_TEMP.SYSTEM_EVENT_INIT;
-                               //X.UA.Opera7 && alert( 'bc' );
+                               //X_UA.Opera7 && alert( 'bc' );
                                X_Node_body.appendAt( 0,
                                        X_Node_systemNode = Node.create( 'div', { 'class' : 'hidden-system-node' } ),
                                        X_Node_fontSizeNode = Node.create( 'div', { 'class' : 'hidden-system-node' } ).cssText( 'line-height:1;height:1em;' ).text( 'X' )
@@ -367,7 +367,7 @@ X.ViewPort = {
                        if( document[ 'webkitHidden' ] !== undefined ) {
                                X_ViewPort_document.listen( 'webkitvisibilitychange', X_ViewPort );
                        } else
-                       if( X.UA.iOS && window[ 'onpageshow' ] !== undefined ) {
+                       if( X_UA.iOS && window[ 'onpageshow' ] !== undefined ) {
                                X_ViewPort.listen( 'pageshow', X_ViewPort )
                                                        .listen( 'pagehide', X_ViewPort );      
                        } else {
@@ -379,7 +379,7 @@ X.ViewPort = {
                };
 
                function X_ViewPort_getWindowSize(){
-                       return X.UA.IE ?
+                       return X_UA.IE ?
                                [ X_ViewPort_rootElement.clientWidth, X_ViewPort_rootElement.clientHeight ] :
                                [ window.innerWidth, window.innerHeight ];
                };
@@ -400,7 +400,7 @@ console.log( 'X.Dom dom:w3c=' + X_UA_DOM.W3C + ' ev:w3c=' + X_UA_EVENT.W3C );
 if( X_UA_EVENT.W3C ){
        X_ViewPort_document.listenOnce( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
 } else
-if( 6 <= X.UA.IE && X.inHead ){
+if( 6 <= X_UA.IE && X.inHead ){
        // if this script in Head
        document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );
        X_TEMP._script = document.getElementById( "__ie_onload" );
@@ -417,7 +417,7 @@ if( 6 <= X.UA.IE && X.inHead ){
 };
 // Re: onLoad doesn't work with Safari?
 // http://lists.apple.com/archives/web-dev/2003/Oct/msg00036.html
-if( X.UA.WebKit || X.UA.Safari < 3 ){ // sniff
+if( X_UA.WebKit || X_UA.Safari < 3 ){ // sniff
        X.Timer.add( 16, function(){
                if( !X_TEMP.onDomContentLoaded ) return X_Callback_UN_LISTEN;
                if( document.readyState === 'loaded' || document.readyState === 'complete' ) return X_TEMP.onDomContentLoaded();
index ddea5de..befe86e 100644 (file)
@@ -32,4 +32,9 @@ X.Doc = {
        listening : function( type, arg1, arg2, arg3 ){
                return X_ViewPort_document.listening( type, arg1, arg2, arg3 );
        }
+       
+       // html
+       // head
+       // body
+       // find
 };
index db20195..233ee62 100644 (file)
@@ -7,18 +7,18 @@ var
                CLASSNAME        :  8, // _getCharSize, width, height, x, y\r
                ATTR             : 16, // _getCharSize, width, height, x, y\r
                CSS              : 32, // _getCharSize, width, height, x, y\r
-               IE_FILTER        : X.UA.IE < 9 && !X.UA.MacIE ? 64 : 0,\r
+               IE_FILTER        : X_UA.IE < 9 && !X_UA.MacIE ? 64 : 0,\r
                UNKNOWN_TAG_FIX  : 128,\r
                IE4_TEXTNODE_FIX : 256\r
        },\r
        \r
        X_Node_State = {\r
                DESTROYED          : 0,\r
-               EXIST              : 1,\r
-               BELONG_TREE        : 2,\r
-               DISPLAY_NONE       : 4,\r
-               DISPLAY_BLOCK      : 8,\r
-               DISPLAY_INLINE     : 16,\r
+               EXIST              : 1, // XNODE_EXIDT, ELEMENT_EXIST\r
+               BELONG_TREE        : 2, // HAS_PARENT, BELONG_TREE_XNODE, BELONG_TREE_ELEMENT\r
+               DISPLAY_NONE       : 4, // VISIVILITY_HIDDEN & DISPALY_NONE\r
+               DISPLAY_BLOCK      : 8, // remove\r
+               DISPLAY_INLINE     : 16,// remove\r
                POSITION_ABSOLUTE  : 32,\r
                OVERFLOW_HIDDEN    : 64,\r
                HAS_WIDTH_LENGTH   : 128,\r
@@ -26,7 +26,7 @@ var
                HAS_HEIGHT_LENGTH  : 512,\r
                HAS_HEIGHT_PERCENT : 1024,\r
                IE4_ONLY_TEXT      : 2048,\r
-               IE5_DISPLAY_NONE_FIX : !X.UA.MacIE && X.UA.IE5 ? 4096 : 0 // filterがかかっていると不可? MacIE5.2- は ?\r
+               IE5_DISPLAY_NONE_FIX : !X_UA.MacIE && X_UA.IE5 ? 4096 : 0 // filterがかかっていると不可? MacIE5.2- は ?\r
        },\r
        \r
        X_Node_TYPE = {\r
@@ -42,9 +42,9 @@ var
                IMAGE       : 10\r
        },\r
        \r
-       X_Node_strictElmCreation = !X.UA.MacIE && X.UA.IE5678,// && !X.UA.MacIE;\r
+       X_Node_strictElmCreation = !X_UA.MacIE && X_UA.IE5678,// && !X_UA.MacIE;\r
        \r
-       X_Node_useDocumentFragment = document.createDocumentFragment && ( !X.UA.IE || 5.5 <= X.UA.IE ) && document.createDocumentFragment(),\r
+       X_Node_useDocumentFragment = document.createDocumentFragment && ( !X_UA.IE || 5.5 <= X_UA.IE ) && document.createDocumentFragment(),\r
        \r
        X_Node_newByTag  = false,\r
        \r
@@ -67,7 +67,7 @@ var
                _rawObject : null,\r
                _rect      : null, // \r
                \r
-               _root      : null, // xnode が文書ツリーに属しているか?はこれを見る\r
+               _root      : null, // xnode が文書ツリーに属しているか?はこれを見る -> state\r
                parent     : null, // remove された枝も親子構造は維持している。\r
                _xnodes    : null,\r
        \r
@@ -95,10 +95,10 @@ var
                        var css, xnodes, xnode, parent, uid = X_Node_CHASHE.length;\r
                        \r
                        if( X_Node_newByTag ){\r
-                               X_Node_newByTag  = false;\r
+                               X_Node_newByTag = false;\r
                                this._tag       = v.toUpperCase();\r
                                this._xnodeType = 1;\r
-                               this._state     = X_Node_State.DISPLAY_INLINE; // todo\r
+                               this._state     = X_Node_State.DISPLAY_INLINE; // TODO\r
                                arguments[ 1 ] && this.attr( arguments[ 1 ] );\r
                                css = arguments[ 2 ];\r
                                css && this[ X.Type.isString( css ) ? 'cssText' : 'css' ]( css );\r
@@ -122,10 +122,10 @@ var
                                                if( xnode = X_Node_getXNode( v ) ) return xnode;\r
                                                // v.parentNode || v.parentElement : dom1 || dom0\r
                                                this.parent     = ( parent = v.parentNode || v.parentElement ) && parent.tagName /* ie7- */ && X_Node_getXNode( parent );\r
-                                               this._root      = this.parent ? this.parent._root : null;\r
+                                               if( this.parent && this.parent._root ) this._root = this.parent._root;\r
                                                this._rawObject = v;\r
                                                this._xnodeType = 1;\r
-                                               this._state     = X_Node_State.DISPLAY_BLOCK; // todo\r
+                                               this._state     = X_Node_State.DISPLAY_BLOCK; // TODO\r
                                                this._tag       = v.tagName.toUpperCase();\r
                                                this._id        = v.id;\r
                                                this._className = v.className;\r
@@ -143,7 +143,7 @@ var
                                        case X_Node_TYPE.RAW_TEXT :\r
                                                if( xnode = X_Node_getXNode( v ) ) return xnode;\r
                                                this.parent     = X_Node_getXNode( v.parentNode );\r
-                                               this._root      = this.parent ? this.parent._root : null;\r
+                                               if( this.parent && this.parent._root ) this._root = this.parent._root;\r
                                                this._rawObject = v;\r
                                                this._xnodeType = 3;\r
                                                this._state     = X_Node_State.DISPLAY_INLINE;\r
@@ -1114,7 +1114,7 @@ var X_Node__updateRawNode =
                        };\r
                        // className\r
                        if( that._dirty & X_Node_Dirty.CLASSNAME ){\r
-                               that._className ? ( elm.className = that._className ) : ( elm.className && elm.removeAttribute( X.UA.IE5678 ? 'className' : 'class' ) ); // className は ie7-?                         \r
+                               that._className ? ( elm.className = that._className ) : ( elm.className && elm.removeAttribute( X_UA.IE5678 ? 'className' : 'class' ) ); // className は ie7-?                         \r
 \r
                                // ie5 only\r
                                if( X_Node_State.IE5_DISPLAY_NONE_FIX && elm.currentStyle.display === 'none' ){\r
@@ -1127,7 +1127,7 @@ var X_Node__updateRawNode =
                        // TODO display:none の場合、更新をスキップ\r
                        if( that._dirty & X_Node_Dirty.CSS ){\r
                                if( that._cssText !== null || ( that._cssText = X_Node_CSS_objToCssText( that._css ) ) ){\r
-                                       X.UA.Opera78 || X.UA.NN6 ?\r
+                                       X_UA.Opera78 || X_UA.NN6 ?\r
                                                elm.setAttribute( 'style', that._cssText ) : // opera8用\r
                                                ( elm.style.cssText = that._cssText );\r
                                } else {\r
@@ -1146,7 +1146,7 @@ var X_Node__updateRawNode =
                        if( that._dirty & X_Node_Dirty.ATTR && ( attrs = that._newAttrs || that._attrs ) ){\r
                                rename = X_Node_Attr_renameForDOM;\r
                                for( k in attrs ){\r
-                                       if( !X.UA.MacIE && ( X.UA.IE5 || X.UA.IE55 ) ){ // IETester 5.5 ではエラーが出なかった.MultipulIE5.5 ではエラーが出たので\r
+                                       if( !X_UA.MacIE && ( X_UA.IE5 || X_UA.IE55 ) ){ // IETester 5.5 ではエラーが出なかった.MultipulIE5.5 ではエラーが出たので\r
                                                if( that._tag === 'TEXTAREA' && k === 'value' ){\r
                                                        elm.firstChild ?\r
                                                                ( elm.firstChild.data = attrs[ k ] ) :\r
@@ -1400,7 +1400,7 @@ var X_Node__actualRemove =
                        if( !elm ) return;\r
                        that._xnodeType === 1 && X_EventDispatcher_toggleAllEvents( that, false );// イベントの退避\r
                        // elm.parentNode.tagName for ie7\r
-                       if( !X.UA.MacIE ){\r
+                       if( !X_UA.MacIE ){\r
                                !isChild && elm.parentNode && elm.parentNode.tagName && elm.parentNode.removeChild( elm );\r
                        } else {\r
                                !isChild && elm.parentNode && elm.parentNode.tagName && X_TEMP._fixed_remove( elm, that );\r
index 6accbb6..c221472 100644 (file)
@@ -18,7 +18,7 @@ var X_Dom_Event_devicePixelRatio = window.devicePixelRatio || ( window.screen.de
                '4' : 'mouse'\r
        }; */\r
 \r
-if( !X.UA.IE || 9 <= X.UA.IE ){\r
+if( !X_UA.IE || 9 <= X_UA.IE ){\r
        X.Dom.Event = function( e, xnode ){\r
                var originalType = e.type,\r
                        type, pointerType,\r
@@ -178,7 +178,7 @@ if( !X.UA.IE || 9 <= X.UA.IE ){
                                \r
                        // http://www.programming-magic.com/20090127231544/\r
                        // Opera で button==2の場合、コンテキストメニューイベントを発火 「ツール」->「設定」->「詳細設定」->「コンテンツ」->「Javascriptオプション」で「右クリックを制御するスクリプトを許可する」\r
-                               if( originalType === 'mousedown' && this.button === 2 && X.UA.Opera ){\r
+                               if( originalType === 'mousedown' && this.button === 2 && X_UA.Opera ){\r
                                        events = [ X.Object.clone( this ), X.Object.clone( this ) ];\r
                                        events[ 1 ].type = 'contextmenu';\r
                                        return events;\r
@@ -289,7 +289,7 @@ if( !X.UA.IE || 9 <= X.UA.IE ){
                                //event.pageY = DOMAssistant.def(e.pageY)? e.pageY : (event.clientY + (de.scrollTop || b.scrollTop) - (de.clientTop || 0));                                                     \r
                        //};\r
 \r
-                       if( 5 <= X.UA.IE ){\r
+                       if( 5 <= X_UA.IE ){\r
                                this.offsetX       = e.offsetX; // イベントターゲット左上からの座標\r
                                this.offsetY       = e.offsetY;                 \r
                        }// else\r
@@ -322,23 +322,24 @@ X.Dom.Event.ANIME_STOP          = ++X_Event_last;
 \r
 \r
 // TODO load -> readystatechange this.readyState === "loaded" || this.readyState === "complete"\r
+/*\r
 X.Dom.Event._LOAD_FIX_TAGS = {\r
        IFRAME : true,\r
        SCRIPT : true//,\r
        //LINK   : true\r
-};\r
+}; */\r
 \r
 // https://github.com/georgeadamson/jQuery.prefixfree-events/blob/master/jQuery.prefixfree-events.js\r
 // https://developer.mozilla.org/en-US/docs/Web/Events/wheel\r
 //\r
 if( document.onwheel === undefined ){\r
        // DOMMoseScroll\r
-       if( X.UA.Gecko && window.MouseScrollEvent ){\r
-               if( 2 <= X.UA.Gecko || ( 1.9 <= X.UA.Gecko && 1 <= X.UA.GeckoPatch ) ){ // Gecko 1.9.1+ (firefox3.5+)\r
+       if( X_UA.Gecko && window.MouseScrollEvent ){\r
+               if( 2 <= X_UA.Gecko || ( 1.9 <= X_UA.Gecko && 1 <= X_UA.GeckoPatch ) ){ // Gecko 1.9.1+ (firefox3.5+)\r
                        console.log( 'wheel <= MozMousePixelScroll' );\r
                        X_Event_Rename[ 'wheel' ] = 'MozMousePixelScroll';\r
                } else\r
-               if( 1 <= X.UA.Gecko || ( 0.9 <= X.UA.Gecko && 7 <= X.UA.GeckoPatch ) ){ // Gecko 0.9.7+ (NN6.2+?)\r
+               if( 1 <= X_UA.Gecko || ( 0.9 <= X_UA.Gecko && 7 <= X_UA.GeckoPatch ) ){ // Gecko 0.9.7+ (NN6.2+?)\r
                        console.log( 'wheel <= DOMMouseScroll' );\r
                        X_Event_Rename[ 'wheel' ] = 'DOMMouseScroll';\r
                };\r
@@ -386,11 +387,11 @@ if( window.onwebkittransitionend !== undefined && window.ontransitionend === und
        X_Event_Rename[ 'transitionend' ]      = 'webkitTransitionEnd';\r
 } else\r
 if( window.onotransitionend !== undefined && window.ontransitionend === undefined ){\r
-       if( X.UA.Opera < 12 ){\r
-               console.log( 'transitionend <= oTransitionEnd|ver.' + X.UA.Opera );\r
+       if( X_UA.Opera < 12 ){\r
+               console.log( 'transitionend <= oTransitionEnd|ver.' + X_UA.Opera );\r
                X_Event_Rename[ 'transitionend' ]  = 'oTransitionEnd';\r
        } else {\r
-               console.log( 'transitionend <= otransitionEnd|ver.' + X.UA.Opera );\r
+               console.log( 'transitionend <= otransitionEnd|ver.' + X_UA.Opera );\r
                X_Event_Rename[ 'transitionend' ]  = 'otransitionEnd';\r
        };\r
 } else\r
@@ -409,11 +410,12 @@ if( !navigator.pointerEnabled ){
                // http://msdn.microsoft.com/ja-jp/library/ie/dn304886%28v=vs.85%29.aspx\r
        } else\r
        if( X_UA_HID.TOUCH ){\r
+               // touch のみ(iOS でも脱獄したら?)、 touch と mouse(Android), mouse のみ\r
                X_Event_Rename[ 'pointerdown'     ] = [ 'touchdown', 'mousedown' ];\r
                X_Event_Rename[ 'pointerup'       ] = [ 'touchup',   'mouseup' ];\r
                X_Event_Rename[ 'pointermove'     ] = [ 'touchmove', 'mousemove' ];\r
                X_Event_Rename[ 'pointercancel'   ] = 'touchcancel';\r
-               // X_Event_Rename[ 'click'           ] = [ 'click', 'tap' ]; // ループになってしまう!直した!\r
+               // X_Event_Rename[ 'click'           ] = [ 'touchdown', 'touchmove', 'touchup' ]; // ループになってしまう!直した!直ってない!\r
        } else {\r
                X_Event_Rename[ 'pointerdown'     ] = 'mousedown';\r
                X_Event_Rename[ 'pointerup'       ] = 'mouseup';\r
@@ -421,7 +423,11 @@ if( !navigator.pointerEnabled ){
                X_Event_Rename[ 'pointercancel'   ] = 'mouseleave';//??\r
                \r
                // Opera は ブラウザ設定から右クリックの通知を許可すると mousedown で e.button==2 が返る,キャンセルは可能??\r
-               X.UA.Opera && (\r
+               X_UA.Opera && (\r
                X_Event_Rename[ 'contextmenu'     ] = 'mousedown' );\r
+               \r
+               /*\r
+                * buttons の無いブラウザには mouseup, mousedown を監視して、buttons フラグを更新し続ける\r
+                */\r
        };\r
 };\r
index 1864969..6c23b0b 100644 (file)
@@ -126,9 +126,17 @@ Node.prototype.attr = function( nameOrObj /* v */ ){
                        case 'style' :\r
                        case 'cssText' :\r
                                return this.cssText();\r
+                       case 'text' :\r
+                               return this.text();\r
+                       case 'html' :\r
+                               return this.html();\r
+                       case 'selected' :\r
+                               // kquery.js : safariのバグ対策\r
+                               // if ($.browser.safari && key === "selected" && tmp) tmp.selectedIndex;\r
+                               // 親ノードの selectedIndex の getter を呼んでおくと値が正しくなる、ということ?( by itozyun )\r
+                               if( X_UA.WebKit ) this._rawObject.parentNode.selectedIndex;\r
                        case 'value' :\r
                        case 'checked' :\r
-                       case 'selected' :\r
                        case 'disabled' :                       \r
                        case 'selectedIndex' :\r
                                if( X_Node_Attr_HAS_VALUE[ this._tag ] ){\r
@@ -164,6 +172,10 @@ function X_Node_Attr_setAttr( that, attrs, newAttrs, name, v ){
                case 'style' :\r
                case 'cssText' :\r
                        return that.cssText( v );\r
+               case 'text' :\r
+                       return that.text( v );\r
+               case 'html' :\r
+                       return that.html( v );\r
        };\r
        // debug\r
        if( name.indexOf( 'on' ) === 0 ){\r
index 643a8fd..7fa9641 100644 (file)
@@ -133,12 +133,12 @@ X_Node_CSS_objToCssText = function( obj ){
        },
        
 X_Node_CSS_IE_FILTER_FIX =
-               X.UA.IE && X.UA.IE < 9 && !X.UA.MacIE ?
+               X_UA.IE && X_UA.IE < 9 && !X_UA.MacIE ?
                        {
                                opacity : 1,
                                textShadow : 1
                        } :
-               9 <= X.UA.IE && X.UA.IE < 10 ? // == 9
+               9 <= X_UA.IE && X_UA.IE < 10 ? // == 9
                        {} :
                        {},
        
@@ -332,7 +332,7 @@ X_Node_CSS_PARAMS = ( function(){
                return ret;
        })(),
        
-X_Node_CSS__CLIP_SEPARATOR = X.UA.IE && X.UA.IE < 8 ? ' ' : ',',
+X_Node_CSS__CLIP_SEPARATOR = X_UA.IE && X_UA.IE < 8 ? ' ' : ',',
        
        /*
         * 
@@ -870,7 +870,7 @@ var X_Node_CSS__GET_VALUE_WITH_UNIT = {
        
 var X_Node_CSS_SPECIAL_FIX =
        // ~IE8
-       X.UA.IE && X.UA.IE < 9 && !X.UA.MacIE?
+       X_UA.IE && X_UA.IE < 9 && !X_UA.MacIE?
                (function( obj ){
                        var test    = X_Node_CSS_SPECIAL_FIX_PROP,
                                filters = [],
@@ -909,7 +909,7 @@ var X_Node_CSS_SPECIAL_FIX =
                        return filters.join( ' ' );
                }) :
        // IE9 textShadow に filter を使用
-       X.UA.IE && 9 <= X.UA.IE && X.UA.IE < 10 ?
+       X_UA.IE && 9 <= X_UA.IE && X_UA.IE < 10 ?
                (function( obj ){
                        var test    = X_Node_CSS_SPECIAL_FIX_PROP,
                                filters = [], p, id, v;
@@ -1085,7 +1085,7 @@ Node.prototype._getCharSize =
                        return this._fontSize = parseFloat( document.defaultView.getComputedStyle( this._rawObject, null ).fontSize );
                }) :
 
-       5.5 <= X.UA.IE ?
+       5.5 <= X_UA.IE ?
                (function(){
                        var font, vu, v, u, _v;
                        X_Node_body._updateTimerID && X_Node_startUpdate();
@@ -1195,7 +1195,7 @@ X.CSS = {
 var X_Node_CSS_Support, X_Node_CSS_SPECIAL_FIX_PROP;
 
 ( function(){
-       var testStyle = X.UA.IE4 ? {} : ( document.documentElement || document.createElement( 'div' ) ).style,
+       var testStyle = X_UA.IE4 ? {} : ( document.documentElement || document.createElement( 'div' ) ).style,
                temp      = testStyle.cssText,
                prefix    = X_Node_CSS_VENDER_PREFIX,
                vendors   = 'webkit,Webkit,Moz,moz,Ms,ms,O,o,khtml,Khtml'.split( ',' ),
@@ -1235,7 +1235,7 @@ var X_Node_CSS_Support, X_Node_CSS_SPECIAL_FIX_PROP;
        
        X_Node_CSS_SPECIAL_FIX_PROP =
                // ~IE8
-               X.UA.IE < 9 && !X.UA.MacIE ?
+               X_UA.IE < 9 && !X_UA.MacIE ?
                        {
                                filter          : 1,
                                opacity         : 2//, uinode ChromeNode で行う
@@ -1244,7 +1244,7 @@ var X_Node_CSS_Support, X_Node_CSS_SPECIAL_FIX_PROP;
                                //backgroundImage : 5
                        } :
                // IE9
-               9 <= X.UA.IE && X.UA.IE < 10 ?
+               9 <= X_UA.IE && X_UA.IE < 10 ?
                        {
                                filter          : 1//,
                                //textShadow      : 1
index cbe5621..1d1dbb7 100644 (file)
@@ -219,7 +219,7 @@ function X_Node_Selector__parse( query, last ){
 };\r
 \r
        // セレクター\r
-       X.Doc.find = X._shortcut = Node.prototype.find = X_NodeList.prototype.find = function( queryString ){\r
+       X.Doc.find = X_shortcutFunction = Node.prototype.find = X_NodeList.prototype.find = function ( queryString ){\r
                var HTML      = X_Node_html,\r
                        scope     = this.constructor === X_NodeList && this.length ? this : [ this.constructor === Node ? this : X_Node_body ],\r
                        parents   = scope, // 探索元の親要素 XNodeList の場合あり\r
@@ -440,7 +440,7 @@ function X_Node_Selector__parse( query, last ){
                                                // 諦めて、funcAttrを呼ぶ\r
                                                // flag_call  = ($.browser.safari && key === 'selected');\r
                                                // getAttributeを使わない\r
-                                               useName = X.UA.IE && key !== 'href' && key !== 'src';\r
+                                               useName = X_UA.IE && key !== 'href' && key !== 'src';\r
                                                toLower = !!val && !isXML && noLower.indexOf( key ) === -1; //!noLower.test(key);\r
                                                if( toLower ) val = val.toLowerCase();\r
                                                if( op === 3 ) val = _ + val + _;\r
index 97df49d..b72081b 100644 (file)
@@ -8,7 +8,7 @@ X_TEMP._isCleanupTarget = function( elm ){
                ( X_Dom_DTD_CLEANUP_TAGS[ tag ] || cname.indexOf( ' cleanup-target ' ) !== -1 );\r
 };\r
 \r
-if( X.UA.MacIE ){\r
+if( X_UA.MacIE ){\r
 \r
        X_TEMP._fixed_remove = function( node, xnode ){\r
                var parent   = node.parentNode, l;\r
@@ -86,7 +86,7 @@ if( X.UA.MacIE ){
        };\r
        \r
 } else\r
-if( X.UA.Opera7 ){\r
+if( X_UA.Opera7 ){\r
 \r
        X_TEMP._fixed_remove = function( node ){\r
                if( node.nodeType === 1 || node.nodeType === 3 ){\r
@@ -117,7 +117,7 @@ X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT,
        \r
        // TODO\r
        // textarea の内容を控えて、消す。xnode tree 構築後に復帰。でないと、html パースでこける\r
-       //X.UA.MacIE && alert( body.innerHTML );\r
+       //X_UA.MacIE && alert( body.innerHTML );\r
        // cleanup tree \r
        (function/*cleanUpTree*/( elm, skip, head ){\r
                var nodes      = X_Object_cloneArray( elm.childNodes ),\r
@@ -157,7 +157,7 @@ X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT,
                                        // ブロック要素直下のスペースだけは削除??\r
                                default :\r
                                        //console.log( 'Remove type: ' + node.nodeType + ' value: ' + node.nodeValue );\r
-                                       if( !X.UA.Opera7 /*&& !X.UA.MacIE */ ){\r
+                                       if( !X_UA.Opera7 /*&& !X_UA.MacIE */ ){\r
                                                elm.removeChild( node );\r
                                        } else {\r
                                                X_TEMP._fixed_remove( node );\r
@@ -165,13 +165,13 @@ X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT,
                                        //++count;\r
                        };\r
                };\r
-       })( X.UA.MacIE ? ( copy = body.cloneNode( true ) ) : body );\r
+       })( X_UA.MacIE ? ( copy = body.cloneNode( true ) ) : body );\r
 \r
-       if( X.UA.MacIE ){\r
+       if( X_UA.MacIE ){\r
                document.write( html = copy.innerHTML );\r
        } else {\r
                // body の属性値の取得\r
-               if( X.UA.IE5678 ){\r
+               if( X_UA.IE5678 ){\r
                        html = body.innerHTML.split( X_String_CRLF ).join( '' ); // 不要な改行が入る\r
                } else {\r
                        html = body.innerHTML;\r
@@ -330,7 +330,7 @@ X_TEMP.bindElementToXnode =
                                elm = elems[ current.j ];\r
                                tag = elm.tagName && elm.tagName.toUpperCase();\r
                                if( ( elm.nodeType !== 1 && elm.nodeType !== 3 ) || tag === '!' || ( tag && tag.charAt( 0 ) === '/' ) ){\r
-                                       if( !X.UA.Opera7 && !X.UA.MacIE ){\r
+                                       if( !X_UA.Opera7 && !X_UA.MacIE ){\r
                                                elm.parentNode.removeChild( elm );\r
                                        } else {\r
                                                X_TEMP._fixed_remove( elm );\r
@@ -342,7 +342,7 @@ X_TEMP.bindElementToXnode =
                                        if( elm.nodeType === 3 ){\r
                                                if( !( text = elm.data ) || ( text = X_String_cleanupWhiteSpace( text ) ) === ' ' ){\r
                                                        //alert( text.charCodeAt( 0 ) );\r
-                                                       if( !X.UA.Opera7 && !X.UA.MacIE ){\r
+                                                       if( !X_UA.Opera7 && !X_UA.MacIE ){\r
                                                                elm.parentNode.removeChild( elm );\r
                                                        } else {\r
                                                                X_TEMP._fixed_remove( elm );\r
index d9ed0f2..73bdf2f 100644 (file)
@@ -11,9 +11,9 @@
  * flash player 12, ie8+, ff17, opera11
  */
 var X_Pulgin_FLASH_VERSION =
-               !X.UA.IE && navigator.plugins[ 'Shockwave Flash' ] ?
+               !X_UA.IE && navigator.plugins[ 'Shockwave Flash' ] ?
                        parseFloat( navigator.plugins[ 'Shockwave Flash' ].version ) :
-               !X.UA.IE4 && !X.UA.IE5 && X.UA.ActiveX ? (function(){
+               !X_UA.IE4 && !X_UA.IE5 && X_UA.ActiveX ? (function(){
                            var obj = eval( 'var a;try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}a' ),
                                ver = obj && obj.GetVariable( '$version' ).split( ' ' ).join( '.' );
                                return parseFloat( ver ) || 0;
@@ -21,7 +21,7 @@ var X_Pulgin_FLASH_VERSION =
                        0,
 
        X_Pulgin_FLASH_ENABLED =
-               X.UA.ActiveX ? !!X_Pulgin_FLASH_VERSION :
+               X_UA.ActiveX ? !!X_Pulgin_FLASH_VERSION :
                        navigator.mimeTypes &&
                        navigator.mimeTypes[ 'application/x-shockwave-flash' ] &&
                        navigator.mimeTypes[ 'application/x-shockwave-flash' ].enabledPlugin,
@@ -30,31 +30,31 @@ var X_Pulgin_FLASH_VERSION =
  * ie11 の 互換モード(8,7)では、Silverlight が動作しない?
  */
        X_Pulgin_SILVER_LIGHT_VERSION = 
-               !X.UA.IE && navigator.plugins[ 'Silverlight Plug-In' ] ?
+               !X_UA.IE && navigator.plugins[ 'Silverlight Plug-In' ] ?
                        parseFloat( navigator.plugins[ 'Silverlight Plug-In' ].version ) :
-               X.UA.ActiveX && 6 <= X.UA.IE && !X.UA.IECompat ? (function(){
+               X_UA.ActiveX && 6 <= X_UA.IE && !X_UA.IECompat ? (function(){
                            return eval( 'var a,i=0;try{a=new ActiveXObject("AgControl.AgControl");for(i=5;i;--i)if(a.IsVersionSupported(i+".0"))break;}catch(e){i=0}i' );
                        })() :
                        0,
 
        X_Pulgin_SILVER_LIGHT_ENABLED =
-               X.UA.ActiveX ? !!X_Pulgin_SILVER_LIGHT_VERSION :
+               X_UA.ActiveX ? !!X_Pulgin_SILVER_LIGHT_VERSION :
                        navigator.mimeTypes &&
                        navigator.mimeTypes[ 'application/x-silverlight' ] &&
                        navigator.mimeTypes[ 'application/x-silverlight' ].enabledPlugin,
 
 //http://docs.unity3d.ru/Manual/Detecting%20the%20Unity%20Web%20Player%20using%20browser%20scripting.html
        X_Pulgin_UNITY_VERSION =        
-               !X.UA.IE && navigator.plugins[ 'Unity Player' ] ?
+               !X_UA.IE && navigator.plugins[ 'Unity Player' ] ?
                        parseFloat( navigator.plugins[ 'Unity Player' ].version ) :
-               !X.UA.IE4 && !X.UA.IE5 && X.UA.ActiveX ? (function(){
+               !X_UA.IE4 && !X_UA.IE5 && X_UA.ActiveX ? (function(){
                            var obj = eval( 'var a;try{a=new ActiveXObject("UnityWebPlayer.UnityWebPlayer.1")}catch(e){}a' );
                            return obj ? parseFloat( obj.GetPluginVersion() ) : 0;
                        })() :
                        0,
 
        X_Pulgin_UNITY_ENABLED =
-               X.UA.ActiveX ? !!X_Pulgin_UNITY_VERSION :
+               X_UA.ActiveX ? !!X_Pulgin_UNITY_VERSION :
                        navigator.mimeTypes &&
                        navigator.mimeTypes[ 'application/vnd.unity' ] &&
                        navigator.mimeTypes[ 'application/vnd.unity' ].enabledPlugin;
index 52d98be..5624baa 100644 (file)
@@ -37,11 +37,11 @@ X.Util.NinjaIframe = X.EventDispatcher.inherits(
                        \r
                        // http://nanto.asablo.jp/blog/2011/12/08/6237308\r
                        // IE 6/7 で文書間通信を実現するための一案\r
-                       if( X.UA.IE < 9 ){\r
+                       if( X_UA.IE < 9 ){\r
                                this.xnodeIframe.attr( 'src', 'about:blank' );\r
                        };\r
                        // Safari 2.0.* bug: iframe's absolute position and src set.\r
-                       if( !X.UA.Webkit ){\r
+                       if( !X_UA.Webkit ){\r
                                this.xnodeIframe.css( { position : 'absolute' } );\r
                        };\r
                        \r
@@ -56,9 +56,9 @@ X.Util.NinjaIframe = X.EventDispatcher.inherits(
                                case X.Event.AFTER_UPDATE :\r
                                        this._iwin = raw.contentWindow || raw.contentDocument && raw.contentDocument.parentWindow || window.frames[ this._name ];\r
                                        \r
-                                       this.xnodeIframe.listen( X.UA.IE < 9 ? [ 'readystatechange', 'error' ] : [ 'load', 'error' ], this );\r
+                                       this.xnodeIframe.listen( X_UA.IE < 9 ? [ 'readystatechange', 'error' ] : [ 'load', 'error' ], this );\r
                                        \r
-                                       if( !( X.UA.IE < 9 ) ){\r
+                                       if( !( X_UA.IE < 9 ) ){\r
                                                this._html && X_Util_NinjaIframe_writeToIframe( this );\r
                                                this._ready = true;\r
                                                return;\r
@@ -96,7 +96,7 @@ X.Util.NinjaIframe = X.EventDispatcher.inherits(
                                return this;\r
                        };\r
                        \r
-                       if( X.UA.IE5 || X.UA.IE55 ){\r
+                       if( X_UA.IE5 || X_UA.IE55 ){\r
                                this._iwin.location.href = 'about:blank'; // reload() では、IE5.5(IETester)で2回目移行の操作でerrorが出る(doc取得やopen,writeで)\r
                        } else {\r
                                this._iwin.location.reload();\r
@@ -105,7 +105,7 @@ X.Util.NinjaIframe = X.EventDispatcher.inherits(
                        if( !opt_html ) return this;\r
                        \r
                        this._html = opt_html;\r
-                       X.UA.IE < 9 || X_Util_NinjaIframe_writeToIframe( this );\r
+                       X_UA.IE < 9 || X_Util_NinjaIframe_writeToIframe( this );\r
                        \r
                        return this;\r
                },\r
index 1280c77..e4c1457 100644 (file)
@@ -50,7 +50,7 @@ function X_Util_Image_getActualDimension( XnodeOrImageElemOrSrc ){
        // for Firefox, Safari, Google Chrome\r
        if( img.naturalWidth ) return [ img.naturalWidth, img.naturalHeight ];\r
 \r
-       if( 5 <= X.UA.IE ){// for IE\r
+       if( 5 <= X_UA.IE ){// for IE\r
                run  = img.runtimeStyle;\r
                memW = run.width;\r
                memH = run.height;\r
index 57450cc..096ad2f 100644 (file)
@@ -6,7 +6,7 @@ X.Net = {
                return new X_NET_Queue( X_NET_TYPE_XHR, { method : 'GET', url : url } );\r
        },\r
        \r
-       xhrPost : function( url, data ){\r
+       xhrPost : function( url, postbody ){\r
                return new X_NET_Queue( X_NET_TYPE_XHR, { method : 'POST', url : url, postbody : postbody } );\r
        },\r
        \r
@@ -106,19 +106,16 @@ function X_NET_proxyDispatch( e ){
                case X.Event.KILL_INSTANCE_CANCELED :\r
                        break;\r
                case X.Event.PROGRESS :\r
-                       console.log( 'q: ' + e.type );\r
                        this.dispatch( e );\r
                        break;\r
                case X.Event.SUCCESS :\r
                case X.Event.ERROR :\r
                case X.Event.TIMEOUT :\r
                case X.Event.CANCELED :\r
-                       console.log( 'q: ' + e.type );\r
                        this.dispatch( e );\r
                        this.asyncDispatch( X.Event.COMPLETE );\r
                        break;\r
                case X.Event.COMPLETE :\r
-                       console.log( 'complete. then kill()' );\r
                        this.kill();\r
                        X_NET_shiftQueue();\r
                        break;\r
index 1a64bee..11e5ba7 100644 (file)
@@ -19,10 +19,10 @@ new ActiveXObject( 'Msxml2.XMLHTTP.4.0' ); // バージョン4.0 は bugfix が
 new ActiveXObject( 'Msxml2.XMLHTTP.5.0' ); // バージョン5.0 は bugfix が行われないので、3.0 か 6.0 を指定すべき\r
 \r
  */\r
-var X_Net_XHR_W3C      = ( !X.UA.IE7 || !X_URL_IS_LOCAL ) && window[ 'XMLHttpRequest' ] && new XMLHttpRequest(),\r
+var X_Net_XHR_W3C      = ( !X_UA.IE7 || !X_URL_IS_LOCAL ) && window[ 'XMLHttpRequest' ] && new XMLHttpRequest(),\r
        X_Net_XHR_X_DOMAIN = window[ 'XDomainRequest' ] && new XDomainRequest(),\r
        X_Net_XHR_VERSION  = 0,\r
-       X_Net_XHR_ACTIVE_X = !X.UA.IE4 && X.UA.IE < 8 && X.UA.ActiveX && ( new Function( [\r
+       X_Net_XHR_ACTIVE_X = !X_UA.IE4 && X_UA.IE < 8 && X_UA.ActiveX && ( new Function( [\r
                'var x=".XMLHTTP",',\r
                        'm="MSXML2"+x,',\r
                        'n=[m+".6.0",m+".3.0",m+".5.0",m+".4.0",m,"Microsoft"+x],',\r
@@ -217,7 +217,7 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){
                                            ( 200 <= status && status < 300 ) ||\r
                                            status === 304 ||\r
                                            status === 1223 ||\r
-                                           ( X.UA.Webkit && status === undefined ) // safari: /webkit/.test(userAgent)\r
+                                           ( X_UA.Webkit && status === undefined ) // safari: /webkit/.test(userAgent)\r
                                                ){\r
                                                        /*\r
                                                         * opera8, safari2, khtml3 で utf8 日本語文字列の文字化け\r
@@ -289,10 +289,10 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){
 \r
 \r
        // ie8 では timeout が有効, MSXML のバージョンは関係なさそう、、、\r
-       if( X.UA.IE8 ){\r
+       if( X_UA.IE8 ){\r
                X_NET_XHRWrapper.listen( [ 'readystatechange', 'error', 'abort', 'timeout' ] );\r
        } else\r
-       if( X.UA.IE7 ){\r
+       if( X_UA.IE7 ){\r
                if( X_URL_IS_LOCAL ){\r
                        X_NET_XHRWrapper.listen( 'readystatechange' ); // ie7 ActiveX の場合、error は不可\r
                } else {\r
index eb5c24f..13bd9e5 100644 (file)
@@ -49,7 +49,7 @@ function X_NET_JSONP_loadScriptInNinjaIframe( url ){
        
        // TODO '<scr'+'ipt> 化 恐らくアンチウイルスソフトが反応しないための対策
        
-       if( X.UA.IE8 ){
+       if( X_UA.IE8 ){
                html = [
                        // http://blog.livedoor.jp/dankogai/archives/51503830.html              
                        // Ajax - IE8にもJSON入ってます。使えるとは限らないけど
@@ -68,7 +68,7 @@ function X_NET_JSONP_loadScriptInNinjaIframe( url ){
                        '</script>'
                ];
        } else
-       if( X.UA.IE9 ){
+       if( X_UA.IE9 ){
                html = [
                        '<script id="jp"></script>',
                        '<script>',
@@ -87,7 +87,7 @@ function X_NET_JSONP_loadScriptInNinjaIframe( url ){
                        '<script src="', url, '"></script>'
                ];
        } else
-       if( X.UA.IE4 || X.UA.MacIE ){
+       if( X_UA.IE4 || X_UA.MacIE ){
                html = [
                        '<script id="jn"></script>',
                        '<script id="jp"></script>',
@@ -99,7 +99,7 @@ function X_NET_JSONP_loadScriptInNinjaIframe( url ){
                        '</script>'
                ];
        } else
-       if( X.UA.IE < 8 ){ // ie5-7
+       if( X_UA.IE < 8 ){ // ie5-7
                html = [
                        '<script id="jn"></script>',
                        '<script id="jp"></script>',
@@ -192,4 +192,4 @@ function X_NET_JSONP_operaImageHandleEvent( e ){
                        break;
        };
 };
-if( !X.UA.Opera ) X_NET_JSONP_operaImageHandleEvent = null;
\ No newline at end of file
+if( !X_UA.Opera ) X_NET_JSONP_operaImageHandleEvent = null;
\ No newline at end of file
index 65c0e8c..6a90a46 100644 (file)
@@ -9,7 +9,7 @@
 var X_Net_Image_hasImage  = !!window[ 'Image' ],\r
        X_Net_Image_image     = X_Net_Image_hasImage && new Image(),\r
        // IE では厳密には HTMLImageElement ではなく、appendChild してもサイズが取れず、removeChild に失敗する\r
-       X_Net_Image_isElement = !( X.UA.IE < 9 ) && X.Type.isHTMLElement( X_Net_Image_image );\r
+       X_Net_Image_isElement = !( X_UA.IE < 9 ) && X.Type.isHTMLElement( X_Net_Image_image );\r
        \r
 \r
 if( !X_Net_Image_hasImage ){\r
@@ -47,7 +47,7 @@ X_NET_ImageWrapper = X_Class_override(
                        \r
                        //X_Net_Image_hasImage ? ( this._rawObject.src = this.abspath ) : this.attr( 'src', this.abspath );\r
                        /*\r
-                       if( X.UA.Opera7 ){\r
+                       if( X_UA.Opera7 ){\r
                                X_EventDispatcher_toggleAllEvents( this, false );\r
                                this._rawObject = new Image();\r
                                X_EventDispatcher_toggleAllEvents( this, true );\r
@@ -55,7 +55,7 @@ X_NET_ImageWrapper = X_Class_override(
                        \r
                        this._rawObject.src = this.abspath;\r
                        //alert( this._rawObject.src + ' ' + this._rawObject.complete );\r
-                       if( X.UA.Opera7 && this._rawObject.complete ){\r
+                       if( X_UA.Opera7 && this._rawObject.complete ){\r
                                this.asyncDispatch( 'load' );\r
                        } else {\r
                                this.timerID = X.Timer.add( this.delay, 0, this, this._detect );\r
@@ -80,7 +80,7 @@ X_NET_ImageWrapper = X_Class_override(
                                        this._busy  = false;\r
                                        this.finish = true;\r
                                        this.timerID && X.Timer.remove( this.timerID );\r
-                                       if( X.UA.Opera && !this._rawObject.complete ){\r
+                                       if( X_UA.Opera && !this._rawObject.complete ){\r
                                                this.timerID = this.asyncDispatch( X.Event.ERROR );\r
                                                return;\r
                                        };\r
index 9a24b95..4d602f7 100644 (file)
        /*\r
         *  "Android version < 2.2" return ev.touches.length === 1 when touchend, others return ev.touches.length === 0\r
         */\r
-       Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && ( X.UA.Android < 2.2 || X.UA.Blink || X.UA.Opera );\r
+       Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && ( X_UA.Android < 2.2 || X_UA.Blink || X_UA.Opera );\r
        \r
        // detect touchevents\r
        Hammer.HAS_POINTEREVENTS = true; // navigator.pointerEnabled || navigator.msPointerEnabled;\r
index a819447..14f8bbd 100644 (file)
@@ -24,9 +24,9 @@ var m      = Math,
                // Scrollbar\r
                hScrollbar      : true,\r
                vScrollbar      : true,\r
-               fixedScrollbar  : X.UA.Android,\r
-               hideScrollbar   : X.UA.iOS,\r
-               fadeScrollbar   : X.UA.iOS, //&& has3d,\r
+               fixedScrollbar  : X_UA.Android,\r
+               hideScrollbar   : X_UA.iOS,\r
+               fadeScrollbar   : X_UA.iOS, //&& has3d,\r
                scrollbarClass  : '',\r
        \r
                // Zoom\r
@@ -196,7 +196,7 @@ var m      = Math,
                // Helpers FIX ANDROID BUG!\r
                // translate3d and scale doesn't work together!\r
                // Ignoring 3d ONLY WHEN YOU SET this.options.zoom\r
-               //if ( this.options.zoom && X.UA.isAndroid ){\r
+               //if ( this.options.zoom && X_UA.isAndroid ){\r
                //      translateZ = '';\r
                //}\r
                \r
@@ -300,7 +300,7 @@ X_Class_override( iScroll.prototype, {
        },\r
        \r
        _resize: function () {\r
-               X.Timer.once( X.UA.Android ? 200 : 0, this, this.refresh );\r
+               X.Timer.once( X_UA.Android ? 200 : 0, this, this.refresh );\r
                // setTimeout( this.refresh(), isAndroid ? 200 : 0);\r
        },\r
        \r