//node.data = '';\r
l = X_TEMP._removalTextNodes.length;\r
if( parent ){\r
- //!l && X_Timer_once( 0, X_TEMP._timerRemove );\r
- //X_TEMP._removalTextNodes[ l ] = node;\r
- //var str=[],p;\r
- //for( p in node ){\r
- // str[str.length] = p;\r
- //};\r
- //alert( str.join( ',' ) + parent.innerHTML );\r
- //node.nodeValue = '';\r
- //parent.replaceChild( document.createElement( 'span' ), node );\r
- //var e;\r
- //var f = document.createDocumentFragment();\r
- //f.appendChild( e = document.createElement( 'span' ) );\r
- //f.replaceChild( node, e );\r
- //e.appendChild( f );\r
- //parent.appendChild( e = document.createElement( 'span' ) );\r
- //e.appendChild( node );\r
- //parent.removeChild( e );\r
- //node.parentNode = null;\r
- //document.body.appendChild( node );\r
- //parent.replaceChild( document.createComment( '' ), node );\r
+ /*\r
+ !l && X_Timer_once( 0, X_TEMP._timerRemove );\r
+ X_TEMP._removalTextNodes[ l ] = node;\r
+ var str=[],p;\r
+ for( p in node ){\r
+ str[str.length] = p;\r
+ };\r
+ alert( str.join( ',' ) + parent.innerHTML );\r
+ node.nodeValue = '';\r
+ parent.replaceChild( document.createElement( 'span' ), node );\r
+ var e;\r
+ var f = document.createDocumentFragment();\r
+ f.appendChild( e = document.createElement( 'span' ) );\r
+ f.replaceChild( node, e );\r
+ e.appendChild( f );\r
+ parent.appendChild( e = document.createElement( 'span' ) );\r
+ e.appendChild( node );\r
+ parent.removeChild( e );\r
+ node.parentNode = null;\r
+ document.body.appendChild( node );\r
+ parent.replaceChild( document.createComment( '' ), node ); */\r
document.body.appendChild( node );\r
return;\r
if( parent.parentNode !== document.body ){\r
* http://kojs.sukobuto.com/docs/visible-binding\r
* IE6 には、「空の span エレメントに続く空白は無視される」という謎な癖があります。 \r
*/\r
-X_ViewPort[ 'listenOnce' ]( X_EVENT_PRE_INIT,\r
+\r
+X_TEMP._onPreInit =\r
X_UA_DOM.W3C ?\r
(function(){\r
var r = X_Node_body,\r
// textarea の内容を控えて、消す。xnode tree 構築後に復帰。でないと、html パースでこける\r
//X_UA[ 'MacIE' ] && alert( body.innerHTML );\r
// cleanup tree \r
- (function/*cleanUpTree*/( elm, skip, head ){\r
+ function cleanUpTree( elm, skip, head ){\r
var nodes = X_Object_cloneArray( elm.childNodes ),\r
i = 0,\r
l = nodes.length,\r
continue;\r
} else {\r
// pre タグ以下はスペースの置換は行わない\r
- node.childNodes && node.childNodes.length && /*cleanUpTree*/arguments.callee( node, skip || X_Dom_DTD_SKIP_CLEANUP_TAGS[ tag ], head );\r
+ node.childNodes && node.childNodes.length && cleanUpTree( node, skip || X_Dom_DTD_SKIP_CLEANUP_TAGS[ tag ], head );\r
};\r
textNode = null;\r
break;\r
//++count;\r
};\r
};\r
- })( X_UA[ 'MacIE' ] ? ( copy = body.cloneNode( true ) ) : body );\r
+ };\r
+\r
+ cleanUpTree( X_UA[ 'MacIE' ] ? ( copy = body.cloneNode( true ) ) : body );\r
\r
if( X_UA[ 'MacIE' ] ){\r
document.write( html = copy.innerHTML );\r
}; \r
};\r
\r
- body.appendChild( elmProgress = document.createElement( 'div' ) );\r
+ body.appendChild( X_TEMP.elmProgress = elmProgress = document.createElement( 'div' ) );\r
elmProgress.style.cssText = 'position:absolute;top:0;left:0;z-index:9999;width:0;height:0.5em;background:#00f;overflow:hidden;';\r
elmProgress.setAttribute( 'style', 'position:absolute;top:0;left:0;z-index:9999;width:0;height:0.5em;background:#00f;overflow:hidden;' );\r
\r
- X_HTMLParser_asyncParse( html, true )\r
- [ 'listen' ]( X_EVENT_PROGRESS,\r
- function( e ){\r
- elmProgress.style.width = ( e[ 'percent' ] * 100 | 0 ) + '%';\r
- }\r
- )\r
- [ 'listenOnce' ]( X_EVENT_SUCCESS,\r
- function( e ){\r
- var xnodes = X_Node_body[ '_xnodes' ] = [], t;\r
- xnodes.push.apply( xnodes, e.xnodes );\r
- elmProgress.style.width = '100%';\r
+ X_TEMP._body = body;\r
\r
- X_TEMP.asyncCreateTree( X_Node_body, body.childNodes, elmProgress );\r
- }\r
- );\r
+ X_HTMLParser_asyncParse( html, true )\r
+ [ 'listen' ]( X_EVENT_PROGRESS, X_TEMP._handleEvent )\r
+ [ 'listenOnce' ]( X_EVENT_SUCCESS, X_TEMP._handleEvent );\r
\r
}) :\r
-X_UA_DOM.IE4 ?\r
+// X_UA_DOM.IE4 ?\r
(function(){\r
var r = X_Node_body,\r
body = r[ '_rawObject' ],\r
html;\r
\r
if( !X_TEMP.X_Dom_useBuilder ) return;\r
-\r
+ \r
/*\r
* http://support.microsoft.com/kb/812417/ja\r
* PRB: outerHTML の HTML 要素のプロパティは、既定の属性は表示されません。\r
*/\r
html = body.innerHTML;\r
body.insertAdjacentHTML( 'BeforeEnd', '<div id="' + elmProgress + '" style="position:absolute;top:0;left:0;z-index:9999;width:0;height:0.5em;background:#00f;overflow:hidden;"></div>' );\r
- elmProgress = document.all[ elmProgress ];\r
+ X_TEMP.elmProgress = document.all[ elmProgress ];\r
+ \r
+ X_TEMP._body = body;\r
\r
X_HTMLParser_asyncParse( html, true )\r
- [ 'listen' ]( X_EVENT_PROGRESS,\r
- function( e ){\r
- elmProgress.style.width = ( e.percent * 100 | 0 ) + '%';\r
- }\r
- )\r
- [ 'listenOnce' ]( X_EVENT_SUCCESS,\r
- function( e ){\r
- var xnodes = X_Node_body[ '_xnodes' ] = [], t;\r
- xnodes.push.apply( xnodes, e.xnodes );\r
- elmProgress.style.width = '100%';\r
- \r
- X_TEMP.asyncCreateTree( X_Node_body, body.childNodes || body.children, elmProgress );\r
- }\r
- );\r
-}) :\r
-(function(){\r
+ [ 'listen' ]( X_EVENT_PROGRESS, X_TEMP._handleEvent )\r
+ [ 'listenOnce' ]( X_EVENT_SUCCESS, X_TEMP._handleEvent );\r
+});\r
+\r
+X_ViewPort[ 'listenOnce' ]( X_EVENT_PRE_INIT, X_TEMP._onPreInit );\r
+\r
+X_TEMP._handleEvent = function( e ){\r
+ var elmProgress = X_TEMP.elmProgress, xnodes;\r
\r
-}) );\r
+ switch( e.type ){\r
+ case X_EVENT_PROGRESS :\r
+ elmProgress.style.width = ( e.percent * 100 | 0 ) + '%';\r
+ break;\r
+ \r
+ case X_EVENT_SUCCESS :\r
+ xnodes = X_Node_body[ '_xnodes' ] = [];\r
+ \r
+ xnodes.push.apply( xnodes, e.xnodes );\r
+ elmProgress.style.width = '100%';\r
+ \r
+ X_TEMP.asyncCreateTree( X_Node_body, X_TEMP._body.childNodes || X_TEMP._body.children, elmProgress );\r
+ \r
+ delete X_TEMP._onPreInit;\r
+ delete X_TEMP._body;\r
+ delete X_TEMP.elmProgress;\r
+ break;\r
+ };\r
+};\r
\r
X_TEMP.asyncCreateTree = function( parent, elems, elmProgress, async ){\r
var xnodes = async ? 0 : X_Object_cloneArray( parent[ '_xnodes' ] ),\r
console.log( 'xtree 作成完了' );\r
X_ViewPort[ 'asyncDispatch' ]( X_EVENT_XTREE_READY );\r
elmProgress.parentNode ? elmProgress.parentNode.removeChild( elmProgress ) : ( elmProgress.outerHTML = '' );\r
+ \r
delete X_TEMP.asyncCreateTree;\r
delete X_TEMP.bindElementToXnode;\r
delete X_TEMP.X_Dom_useBuilder;\r