OSDN Git Service

Vesion 0.6.4
authoritozyun <itozyun@user.sourceforge.jp>
Mon, 29 Jul 2013 12:19:34 +0000 (21:19 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Mon, 29 Jul 2013 12:19:34 +0000 (21:19 +0900)
0.6.x/js/core/01_XUa.js
0.6.x/js/core/11_XDom.js
0.6.x/js/core/14_XView.js

index 0befea7..d1e0861 100644 (file)
@@ -1,4 +1,4 @@
-var console = console || { log : function(){} };\r
+if( !window['console'] ) console = { log : function(){} };\r
 \r
 /*\r
  * UA\r
index eb17831..9ad5cf7 100644 (file)
@@ -34,17 +34,13 @@ X.Dom = {
                                var self  = X.Dom,\r
                                        live  = parent.getElementsByTagName( '*' ),\r
                                        nodes = [],\r
-                    node;\r
-                for( var i = 0, l = live.length; i < l; ++i ){\r
-                       nodes[ i ] = live[ i ];\r
+                    node, i;\r
+                for( i = live.length; i; ){\r
+                       nodes[ --i ] = live[ i ];\r
                 };\r
-                               for( i = 0; i < nodes.length; ){\r
-                                       node = nodes[ i ];\r
-                                       if( node.nodeType !== 1 || self.hasClassName( node, className ) === false ){\r
-                                               nodes.splice( i, 1 );\r
-                                       } else {\r
-                                               ++i;\r
-                                       };\r
+                               for( i = nodes.length; i; ){\r
+                                       node = nodes[ --i ];\r
+                                       ( node.nodeType !== 1 || !node.className || !node.className.length || self.hasClass( node, className ) === false ) && nodes.splice( i, 1 );\r
                                };\r
                                return nodes;\r
                        }) :\r
@@ -53,17 +49,13 @@ X.Dom = {
                                var self  = X.Dom,\r
                                        live  = parent.all,\r
                                        nodes = [],\r
-                    node;\r
-                for( var i = 0, l = live.length; i < l; ++i ){\r
-                       nodes[ i ] = live[ i ];\r
+                    node, i;\r
+                for( i = live.length; i; ){\r
+                       nodes[ --i ] = live[ i ];\r
                 };\r
-                               for( i = 0; i < nodes.length; ){\r
-                                       node = nodes[ i ];\r
-                                       if( !node.className || !node.className.length || self.hasClassName( node, className ) === false ){\r
-                                               nodes.splice( i, 1 );\r
-                                       } else {\r
-                                               ++i;\r
-                                       };\r
+                               for( i = nodes.length; i; ){\r
+                                       node = nodes[ --i ];\r
+                                       ( !node.className || !node.className.length || self.hasClass( node, className ) === false ) && nodes.splice( i, 1 );\r
                                };\r
                                return nodes;\r
                        }) :\r
@@ -80,19 +72,6 @@ X.Dom = {
                };\r
                return true;\r
        },\r
-       createElement :\r
-               document.createElement ?\r
-                       (function( tagName ){\r
-                               return document.createElement( tagName );\r
-                       }) :\r
-               document.all ?\r
-                       (function( tagName ){\r
-                               document.body.insertAdjacentHTML( 'BeforeEnd', '<' + tagName + '>gggg<\/' + tagName + '>' );\r
-                               var list = document.all.tags( tagName.toUpperCase() ),\r
-                                       ret  = list[ list.length - 1 ];\r
-                               return list;\r
-                       }) :\r
-                       (function(){}),\r
        appendChild :\r
                document.appendChild ?\r
                        (function( target, elm ){\r
@@ -110,25 +89,21 @@ X.Dom = {
                        }) :\r
                document.all ?\r
                        (function( parent, elm ){\r
-                               var children = parent.children,\r
-                                       i        = 0,\r
+                               var children = X.Dom.getChildNodes( parent ),\r
                                        l        = children.length,\r
                                        html     = [],\r
+                                       i        = 0,\r
                                        child, update;\r
-                               if( i === 1 ){\r
-                                       parent.innerHTML = '';\r
-                                       return;\r
-                               };\r
                                for( ; i < l; ++i ){\r
                                        child = children[ i ];\r
                                        if( child !== elm ){\r
-                                               html[ html.length ] = child.outerHTML;\r
+                                               html[ html.length ] = child.outerHTML || child;\r
                                        } else {\r
                                                update = true;\r
                                        };\r
                                };\r
                                if( !update ) return;\r
-                               parent.innerHTML = html.join('');\r
+                               parent.innerHTML = html.join( '' );\r
                        }) :\r
                        (function(){}),\r
        insertBefore :\r
@@ -138,7 +113,7 @@ X.Dom = {
                        }) :\r
                document.all ?\r
                        (function( parent, elm, elmAfter ){\r
-                               return elmAfter.insertAdjacentHTML( 'BeforeBegin', '<' + elm.tagName + ' class="list">' + elm.innerHTML + '<\/' + elm.tagName + '>' );\r
+                               return elmAfter.insertAdjacentHTML( 'BeforeBegin', elm.outerHTML );\r
                        }) :\r
                        (function(){})\r
 };\r
index 017a9d0..d1b6588 100644 (file)
@@ -6,46 +6,6 @@ X.View = (function( window, document ){
                resize, delayResize;\r
 \r
 /* -----------------------------------------------\r
- * Document Ready\r
- *  Dean Edwards/Matthias Miller/John Resig\r
- */\r
-       function init(){\r
-               var s;\r
-               if( X.View.ready ) return X.Cancel.UN_LISTEN;\r
-               if( s = init.script ){\r
-                       s.parentNode.removeChild( s );\r
-                       s.onreadystatechange = new Function();\r
-                       s.onreadystatechange = null;\r
-                       delete init.script;\r
-               };\r
-               init = void 0;\r
-               X.View.ready = true;\r
-               X.View.dispatch( { type : X.ViewEvent.SYS_READY, w : w, h : h } );\r
-               return X.Cancel.UN_LISTEN;\r
-       };\r
-       /* for ie9+/Mozilla/Opera9 */\r
-       if( document.addEventListener ){\r
-               X.DomEvent.add( document, 'DOMContentLoaded', init );\r
-       } else\r
-       if( 4 < X.UA.IE ){\r
-               // if this script in Head\r
-               document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );\r
-               init.script = document.getElementById( "__ie_onload" );\r
-               init.script.onreadystatechange = function(){\r
-                       this.readyState === 'complete' && init();\r
-               };\r
-       } else\r
-       if( X.UA.WebKit ){ // sniff\r
-               X.Timer.add( 10, function(){\r
-                       if( !init ) return X.Cancel.UN_LISTEN;\r
-                       if( 'loaded|complete'.indexOf( document.readyState ) !== -1 ) return init();\r
-               });\r
-       };\r
-       \r
-       /* for other browsers */\r
-       X.DomEvent.add( window, 'load', init );\r
-\r
-/* -----------------------------------------------\r
  * Resize\r
  *  uupaa.js\r
  */\r
@@ -83,6 +43,7 @@ X.View = (function( window, document ){
        X.View = X.Class._override( new X.EventDispatcher(),\r
                {\r
                        ready : false,\r
+                       _view : view,\r
                        getSize : ( view.innerWidth ?\r
                                ( function(){\r
                                        return [ view.innerWidth, view.innerHeight ];\r
@@ -91,24 +52,39 @@ X.View = (function( window, document ){
                                        return [ view.clientWidth, view.clientHeight ];\r
                                })\r
                        ),\r
+                       getPointerPosition : function(){\r
+                               \r
+                       },\r
                        /* 要素が視界に入った  http://remysharp.com/2009/01/26/element-in-view-event-plugin/ */\r
                        inView : function( elm ){\r
                                \r
+                       },\r
+                       _init : function(){\r
+                               var s;\r
+                               if( X.View.ready ) return X.Cancel.UN_LISTEN;\r
+                               if( s = X.View._script ){\r
+                                       s.parentNode.removeChild( s );\r
+                                       s.onreadystatechange = new Function();\r
+                                       s.onreadystatechange = null;\r
+                                       delete X.View._script;\r
+                               };\r
+                               delete X.View._init;\r
+                               X.View.ready = true;\r
+                               X.View.dispatch( { type : X.ViewEvent.SYS_READY } );\r
+                               return X.Cancel.UN_LISTEN;\r
                        }\r
                }\r
        );\r
                \r
        X.View.listenOnce( X.ViewEvent.SYS_READY, function(){\r
                var b, x;\r
-               if( X.UA.IE ){\r
+               if( X.UA.IE && X.UA.IE < 9 ){\r
                        X.Timer.add( 100, resize );\r
-                       if( X.UA.IE < 9 ){\r
-                               b = document.body;\r
-                               b.appendChild( x = document.createElement( 'div' ) );\r
-                               x.style.cssText = 'width:1px;height:1px;line-height:1px;filter:progid:DXImageTransform.Microsoft.Shadow()';\r
-                               b.className += [ b.className === '' ? '' : ' ', 'ActiveX-', 1 < x.offsetHeight ? 'enabled' : 'disabled' ].join( '' );\r
-                               b.removeChild( x );\r
-                       };\r
+                       b = document.body;\r
+                       b.appendChild( x = document.createElement( 'div' ) );\r
+                       x.style.cssText = 'width:1px;height:1px;line-height:1px;filter:progid:DXImageTransform.Microsoft.Shadow()';\r
+                       b.className += [ b.className === '' ? '' : ' ', 'ActiveX-', 1 < x.offsetHeight ? 'enabled' : 'disabled' ].join( '' );\r
+                       b.removeChild( x );\r
                } else {\r
                        X.DomEvent.add( window, 'resize', resize );\r
                };\r
@@ -117,6 +93,33 @@ X.View = (function( window, document ){
        return X.View;\r
 })( window, document );\r
 \r
+\r
+/* -----------------------------------------------\r
+ * Document Ready\r
+ *  Dean Edwards/Matthias Miller/John Resig\r
+ */\r
+/* for ie9+/Mozilla/Opera9 */\r
+if( document.addEventListener ){\r
+       X.DomEvent.add( document, 'DOMContentLoaded', X.View._init );\r
+} else\r
+if( 4 < X.UA.IE ){\r
+       // if this script in Head\r
+       document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );\r
+       X.View._script = document.getElementById( "__ie_onload" );\r
+       X.View._script.onreadystatechange = function(){\r
+               this.readyState === 'complete' && X.View._init();\r
+       };\r
+} else\r
+if( X.UA.WebKit ){ // sniff\r
+       X.Timer.add( 10, function(){\r
+               if( !X.View._init ) return X.Cancel.UN_LISTEN;\r
+               if( 'loaded|complete'.indexOf( document.readyState ) !== -1 ) return X.View._init();\r
+       });\r
+};\r
+\r
+/* for other browsers */\r
+X.DomEvent.add( window, 'load', X.View._init );\r
+\r
 //\r
 X.View.listen( X.ViewEvent.SYS_READY, function(e){ console.log( 'X.View DomReady ' + X.View.ready ) } );\r
 \r