OSDN Git Service

Version 0.6.37, X.Dom.Anime removed.
[pettanr/clientJs.git] / 0.6.x / js / dom / 22_XDomBuilder.js
index de453f1..8fb5f9c 100644 (file)
@@ -6,11 +6,12 @@ X.Dom._useBuilder = true;
  *  完全にワンページアプリで<body/>が空な場合、このコードはビルドに含める必要はない\r
  */\r
 X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT,\r
-       document.getElementById ?\r
+       X.Dom.DOM_W3C ?\r
 (function(){\r
        var r    = Node.root,\r
                body = r._rawNode,\r
-               i, n = 0;\r
+               i, n = 0,\r
+               elmProgress;\r
        \r
        // cleanup tree \r
        (function( elm, skip, head ){\r
@@ -80,7 +81,7 @@ X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT,
                } );\r
 \r
 }) :\r
-document.all ?\r
+X.Dom.DOM_IE4 ?\r
 (function(){\r
        var r    = Node.root,\r
                body = r._rawNode,\r
@@ -139,7 +140,7 @@ X.Dom._asyncCreateTree = function ( parent, elems, elmProgress, async ){
                        xnodes = current.xnodes;\r
                        while( xnode = xnodes[ i ] ){                   \r
                                //\r
-                               dive = bindElementToXnode( parent, xnode, current );\r
+                               dive = X.Dom._bindElementToXnode( parent, xnode, current );\r
                                \r
                                ++i;\r
                                ++done;\r
@@ -174,10 +175,11 @@ X.Dom._asyncCreateTree = function ( parent, elems, elmProgress, async ){
        X.Dom.asyncDispatch( 0, { type : X.Dom.Event.DOM_BUILDER_COMPLETE } );\r
        elmProgress.parentNode ? elmProgress.parentNode.removeChild( elmProgress ) : ( elmProgress.outerHTML = '' );\r
        delete X.Dom._asyncCreateTree;\r
+       delete X.Dom._bindElementToXnode;\r
 };\r
 \r
-bindElementToXnode =\r
-       document.getElementById ?\r
+X.Dom._bindElementToXnode =\r
+       X.Dom.DOM_W3C ?\r
                (function( parent, xnode, current ){\r
                        var elems = current.elems,\r
                                //j     = current.j,\r
@@ -220,7 +222,7 @@ bindElementToXnode =
                                                        xnode.attr( 'value', xnode.html() ).empty();\r
                                                        current.xtext = null;\r
                                                } else\r
-                                               if( 0 <= X.Dom.cleanupTagNames.indexOf( tag.toLowerCase() ) || tag === 'SCRIPT' ){ // ie で body 内の script が2度よばれるのに対処\r
+                                               if( !xnode.hasClass( 'skip-cleanup' ) && ( X.Dom.cleanupTagNames[ tag.toLowerCase() ] || tag === 'SCRIPT' || xnode.hasClass( 'cleanup-target' ) ) ){ // ie で body 内の script が2度よばれるのに対処\r
                                                        //alert( '[' +parent._tag + '>' + xnode._tag + '] remove ... ' );\r
                                                        xnode.destroy();\r
                                                } else\r
@@ -340,7 +342,7 @@ bindElementToXnode =
                                        xnode._rawNode = elm;\r
                                        xnode._root    = parent._root;\r
                                        //xnode._tag     = X.Dom.DTD.TAG_FIX[ tag ] || tag;\r
-                                       if( 0 <= X.Dom.cleanupTagNames.indexOf( tag.toLowerCase() ) || tag === 'SCRIPT' ){\r
+                                       if( !xnode.hasClass( 'skip-cleanup' ) && ( X.Dom.cleanupTagNames[ tag.toLowerCase() ] || tag === 'SCRIPT' || xnode.hasClass( 'cleanup-target' ) ) ){\r
                                                xnode.destroy();\r
                                                break;\r
                                        };\r