OSDN Git Service

version 0.6.101, add X.Doc.
authoritozyun <itozyun@user.sourceforge.jp>
Mon, 13 Oct 2014 03:09:12 +0000 (12:09 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Mon, 13 Oct 2014 03:09:12 +0000 (12:09 +0900)
0.6.x/js/01_core/16_XViewPort.js
0.6.x/js/02_dom/00_XDoc.js [new file with mode: 0644]
0.6.x/js/02_dom/02_XDomNode.js
0.6.x/js/02_dom/03_XDomEvent.js

index 226bf4f..b2313dd 100644 (file)
@@ -20,7 +20,9 @@ var X_ViewPort_readyState,
                X_ViewPort_orientationFlag = true;
                !X.UA.Android && X_ViewPort_resize();
                //console.log( '-- orientationchange : ' + X.ViewPort.getSize[ 0 ] + ' ' + X.ViewPort.getSize[ 1 ] );
-       };
+       },
+       
+       X_ViewPort_document = new X.EventDispatcher( document ),
 
 X_ViewPort = X.Class._override(
        new X.EventDispatcher( window ),
@@ -39,8 +41,8 @@ X_ViewPort = X.Class._override(
                                case 'unload' :
                                        X_ViewPort.dispatch( X.Event.UNLOAD );
                                        
-                                       X.ViewPort.unlisten();
-                                       Node._document.unlisten();
+                                       X_ViewPort.unlisten();
+                                       X_ViewPort_document.unlisten();
                                        Node._html._actualRemove( true );
                                        break;
                                case 'visibilitychange' :
@@ -100,6 +102,7 @@ X.ViewPort = {
                return X_ViewPort.listening( type, arg1, arg2, arg3 );
        },
        
+       // hammer のテストファイルだけが使用
        asyncDispatch : function(){
                return X_ViewPort.asyncDispatch.apply( X_ViewPort, arguments );
        },
@@ -251,7 +254,7 @@ X.ViewPort = {
                        X_ViewPort_readyState = X_TEMP.SYSTEM_EVENT_PRE_INIT;
                        
                        // DOMContentLoaded の無いブラウザで X_TEMP.onDomContentLoaded への参照が残り続けるのを回避
-                       X_TEMP.onDomContentLoaded && Node._document.unlisten( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
+                       X_TEMP.onDomContentLoaded && X_ViewPort_document.unlisten( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
                        delete X_TEMP.onDomContentLoaded;
                        
                        elmHtml = document.documentElement ||
@@ -284,13 +287,13 @@ X.ViewPort = {
                        head.empty = head.html = head.text =
                        body.appendTo = body.appendToRoot = body.before = body.after = body.clone = body.remove = body.destroy = body.prevNode = body.nextNode = new Function( 'return this' );
 
-                       X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT, function(){
+                       X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT, function(){
                                X_ViewPort_readyState = X_TEMP.SYSTEM_EVENT_XTREE;
                                if( X_TEMP.X_Dom_useBuilder ) X_TEMP.X_Dom_useBuilder = !!document.body.children.length;
                                !X_TEMP.X_Dom_useBuilder && X_ViewPort.asyncDispatch( X_TEMP.SYSTEM_EVENT_XTREE );
                        } );
                        
-                       X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_XTREE, function(){
+                       X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_XTREE, function(){
                                X_ViewPort_readyState = X_TEMP.SYSTEM_EVENT_INIT;
                                //X.UA.Opera7 && alert( 'bc' );
                                Node._body.appendAt( 0,
@@ -301,15 +304,15 @@ X.ViewPort = {
                                X_ViewPort.asyncDispatch( X_TEMP.SYSTEM_EVENT_INIT );
                        } );
 
-                       X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){
+                       X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){
                                var size = X_ViewPort_getWindowSize();
                                
                                if( X_Dom_orientationchange ){
-                                       X.ViewPort.listen( 'orientationchange', X_Dom_orientationchange );
+                                       X_ViewPort.listen( 'orientationchange', X_Dom_orientationchange );
                                };
                                
                                if( X_Dom_detectFontSize ){
-                                       X.ViewPort.listen( 'resize', X_ViewPort_resize );
+                                       X_ViewPort.listen( 'resize', X_ViewPort_resize );
                                        X.Timer.add( 333, X_Dom_detectFontSize );
                                } else {
                                        X.Timer.add( 333, X_ViewPort_resize );
@@ -323,7 +326,7 @@ X.ViewPort = {
 
                        console.log( X_ViewPort.asyncDispatch( X_TEMP.SYSTEM_EVENT_PRE_INIT ) );        
 
-                       X.ViewPort
+                       X_ViewPort
                                .listen( 'beforeunload', X_ViewPort )
                                .listenOnce( 'unload', X_ViewPort );
 
@@ -331,16 +334,16 @@ X.ViewPort = {
 //http://d.hatena.ne.jp/koumiya/20080916/1221580149
 
                        if( document[ 'hidden' ] !== undefined ) {// iOS 7+
-                               Node._document.listen( 'visibilitychange', X_ViewPort );
+                               X_ViewPort_document.listen( 'visibilitychange', X_ViewPort );
                        } else
                        if( document[ 'webkitHidden' ] !== undefined ) {
-                               Node._document.listen( 'webkitvisibilitychange', X_ViewPort );
+                               X_ViewPort_document.listen( 'webkitvisibilitychange', X_ViewPort );
                        } else
                        if( X.UA.iOS && window[ 'onpageshow' ] !== undefined ) {
-                               X.ViewPort.listen( 'pageshow', X_ViewPort )
+                               X_ViewPort.listen( 'pageshow', X_ViewPort )
                                                        .listen( 'pagehide', X_ViewPort );      
                        } else {
-                               X.ViewPort.listen( 'focus', X_ViewPort )
+                               X_ViewPort.listen( 'focus', X_ViewPort )
                                                        .listen( 'blur', X_ViewPort );
                        };
 
@@ -355,3 +358,43 @@ X.ViewPort = {
 
 
 console.log( 'X.Dom dom:w3c=' + X_UA_DOM.W3C + ' ev:w3c=' + X_UA_EVENT.W3C );
+
+/* -----------------------------------------------
+ * Document Ready
+ *  Dean Edwards/Matthias Miller/John Resig
+ */
+
+// SafariでJavaScriptのデバッグをする方法
+// safari1.3 可
+// http://shimax.cocolog-nifty.com/search/2006/09/safarijavascrip_c54d.html
+
+/* for ie9+/Mozilla/Opera9 */
+if( X_UA_EVENT.W3C ){
+       X_ViewPort_document.listenOnce( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
+} else
+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" );
+       X_TEMP._script.onreadystatechange = function(){
+               var s = X_TEMP._script;
+               if( s && s.readyState === 'complete' ){
+                       s.onreadystatechange = X.emptyFunction;
+                       s.onreadystatechange = null;
+                       s.parentNode.removeChild( s );
+                       delete X_TEMP._script;
+                       X_TEMP.onDomContentLoaded && X_TEMP.onDomContentLoaded();
+               };
+       };
+};
+// 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
+       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();
+       });
+};
+
+/* for other browsers */
+X_ViewPort.listenOnce( 'load', X_TEMP.onDomContentLoaded );
diff --git a/0.6.x/js/02_dom/00_XDoc.js b/0.6.x/js/02_dom/00_XDoc.js
new file mode 100644 (file)
index 0000000..ddea5de
--- /dev/null
@@ -0,0 +1,35 @@
+
+
+X.Doc = {
+       listen : function( type, arg1, arg2, arg3 ){
+               if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){
+                       /*
+                        * X.Event.XDOM_READY 以後に listen した場合の対策
+                        */
+                       X_ViewPort_document.asyncDispatch( type );
+               };
+               type && arg1 && X_ViewPort_document.listen( type, arg1, arg2, arg3 );
+               return X.Doc;
+       },
+       
+       
+       listenOnce : function( type, arg1, arg2, arg3 ){
+               if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){
+                       /*
+                        * X.Event.XDOM_READY 以後に listen した場合の対策
+                        */
+                       X_ViewPort_document.asyncDispatch( type );
+               };
+               type && arg1 && X_ViewPort_document.listenOnce( type, arg1, arg2, arg3 );
+               return X.Doc;
+       },
+       
+       unlisten : function( type, arg1, arg2, arg3 ){
+               type && arg1 && X_ViewPort_document.unlisten( type, arg1, arg2, arg3 );
+               return X.Doc;
+       },
+       
+       listening : function( type, arg1, arg2, arg3 ){
+               return X_ViewPort_document.listening( type, arg1, arg2, arg3 );
+       }
+};
index 1256f61..5cc5b5f 100644 (file)
@@ -209,7 +209,7 @@ function X_Node_getXNode( v ){
                case X_Node_TYPE.WINDOW :\r
                        return X.ViewPort;\r
                case X_Node_TYPE.DOCUMENT :\r
-                       return Node._document;\r
+                       return X_ViewPort_document;\r
                case X_Node_TYPE.RAW_TEXT :\r
                        if( v.UID ) return Node._chashe[ v.UID ];\r
                        for( chashe = Node._chashe, i = chashe.length; i; ){\r
@@ -240,7 +240,7 @@ Node.createText = function( text ){
 \r
 \r
 Node.getRoot = function( xnode ){\r
-       return Node._document;\r
+       return X_ViewPort_document;\r
        //return xNode._body._rawObject.documentElement ? node : node.ownerDocument || node.document;\r
 };\r
        // XMLかどうかを判別する\r
@@ -254,8 +254,6 @@ Node.isXmlDocument =
 \r
 Node._chashe     = [];\r
 Node.none        = Node._chashe[ 0 ] = new Node();\r
-\r
-Node._document   = new X.EventDispatcher( document );\r
 Node._html       = null; // = Node._chashe[ 1 ] <html>\r
 Node._head       = null; // = Node._chashe[ 2 ] <head>\r
 Node._body       = null; // = Node._chashe[ 3 ] <body>\r
index d6ab359..6accbb6 100644 (file)
@@ -425,44 +425,3 @@ if( !navigator.pointerEnabled ){
                X_Event_Rename[ 'contextmenu'     ] = 'mousedown' );\r
        };\r
 };\r
-\r
-/* -----------------------------------------------\r
- * Document Ready\r
- *  Dean Edwards/Matthias Miller/John Resig\r
- */\r
-\r
-// SafariでJavaScriptのデバッグをする方法\r
-// safari1.3 可\r
-// http://shimax.cocolog-nifty.com/search/2006/09/safarijavascrip_c54d.html\r
-\r
-/* for ie9+/Mozilla/Opera9 */\r
-if( X_UA_EVENT.W3C ){\r
-       Node._document.listenOnce( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );\r
-} else\r
-if( 6 <= X.UA.IE && X.inHead ){\r
-       // if this script in Head\r
-       document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );\r
-       X_TEMP._script = document.getElementById( "__ie_onload" );\r
-       X_TEMP._script.onreadystatechange = function(){\r
-               var s = X_TEMP._script;\r
-               if( s && s.readyState === 'complete' ){\r
-                       s.onreadystatechange = X.emptyFunction;\r
-                       s.onreadystatechange = null;\r
-                       s.parentNode.removeChild( s );\r
-                       delete X_TEMP._script;\r
-                       X_TEMP.onDomContentLoaded && X_TEMP.onDomContentLoaded();\r
-               };\r
-       };\r
-};\r
-// Re: onLoad doesn't work with Safari?\r
-// http://lists.apple.com/archives/web-dev/2003/Oct/msg00036.html\r
-if( X.UA.WebKit || X.UA.Safari < 3 ){ // sniff\r
-       X.Timer.add( 16, function(){\r
-               if( !X_TEMP.onDomContentLoaded ) return X_Callback_UN_LISTEN;\r
-               if( document.readyState === 'loaded' || document.readyState === 'complete' ) return X_TEMP.onDomContentLoaded();\r
-       });\r
-};\r
-\r
-/* for other browsers */\r
-X.ViewPort.listenOnce( 'load', X_TEMP.onDomContentLoaded );\r
-\r