-X.Dom.Dirty = {\r
- CLEAN : 0,\r
- CHILD_IS_DIRTY : 1,\r
- ID : 2, // width, height, x, y\r
- CONTENT : 4, // width, height, x, y textNode の内容\r
- 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
- UNKNOWN_TAG_FIX : 128,\r
- IE4_TEXTNODE_FIX : 256\r
-};\r
-\r
-X.Dom.State = {\r
- DESTROYED : 0,\r
- EXIST : 1,\r
- BELONG_TREE : 2,\r
- DISPLAY_NONE : 4,\r
- DISPLAY_BLOCK : 8,\r
- DISPLAY_INLINE : 16,\r
- POSITION_ABSOLUTE : 32,\r
- OVERFLOW_HIDDEN : 64,\r
- HAS_WIDTH_LENGTH : 128,\r
- HAS_WIDTH_PERCENT : 256,\r
- 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
-};\r
-\r
-X.Dom._strictElmCreation = !X.UA.MacIE && X.UA.IE5678;// && !X.UA.MacIE;\r
-\r
-X.Dom._useDocumentFragment = document.createDocumentFragment && ( !X.UA.IE || 5.5 <= X.UA.IE ) && document.createDocumentFragment();\r
+var \r
+ X_Node_Dirty = {\r
+ CLEAN : 0,\r
+ CHILD_IS_DIRTY : 1,\r
+ ID : 2, // width, height, x, y\r
+ CONTENT : 4, // width, height, x, y textNode の内容\r
+ 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
+ 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
+ POSITION_ABSOLUTE : 32,\r
+ OVERFLOW_HIDDEN : 64,\r
+ HAS_WIDTH_LENGTH : 128,\r
+ HAS_WIDTH_PERCENT : 256,\r
+ 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
+ },\r
+ \r
+ X_Node_TYPE = {\r
+ XNODE : 1,\r
+ RAW_HTML : 2,\r
+ RAW_TEXT : 3,\r
+ HTML_STRING : 4,\r
+ STRING : 5,\r
+ //DOC_FRAG : 6,\r
+ XNODE_LIST : 7,\r
+ WINDOW : 8,\r
+ DOCUMENT : 9,\r
+ IMAGE : 10\r
+ },\r
+ \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
\r
/*\r
* Node( rawElement | rawTextnode | htmlString | textString )\r
- */\r
-\r
-X.Dom.Node = X.EventDispatcher.inherits(\r
+ */ \r
+ Node = X.Dom.Node = X.EventDispatcher.inherits(\r
'XDomNode',\r
X.Class.POOL_OBJECT,\r
{\r
_state : 0,\r
_dirty : 0,\r
\r
- _isNew : false,\r
+ _isNew : false, // state にまとめる\r
\r
_rawObject : null,\r
_rect : null, // \r
_id : null,\r
_className : '',\r
\r
- _attrs : null, // X.Dom.Attr\r
+ _attrs : null, // X_Node_Attr\r
_newAttrs : null,\r
- _attrText : '', // X.Dom.Attr.objToAttrText が必要な場合は false が入っている\r
+ _attrText : '', // X_Node_Attr.objToAttrText が必要な場合は false が入っている\r
\r
_css : null, // X.Dom.Style\r
_cssText : null,\r
Node._newByTag = false;\r
this._tag = v.toUpperCase();\r
this._xnodeType = 1;\r
- this._state = X.Dom.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
Node._newByText = false;\r
this._text = v;\r
this._xnodeType = 3;\r
- this._state = X.Dom.State.DISPLAY_INLINE;\r
+ this._state = X_Node_State.DISPLAY_INLINE;\r
} else {\r
if( 1 < arguments.length ) return new X.Dom.NodeList( arguments );\r
if( X.Type.isArray( v ) && v.length ) return new X.Dom.NodeList( v );\r
//if( !this || this.append !== Node.prototype.append ){\r
// return new Node( v );\r
//};\r
- switch( Node._getType( v ) ){\r
- case Node.IS_XNODE :\r
- case Node.IS_XNODE_LIST :\r
+ switch( X_Node_getType( v ) ){\r
+ case X_Node_TYPE.XNODE :\r
+ case X_Node_TYPE.XNODE_LIST :\r
return v;\r
- case Node.IS_RAW_HTML :\r
- if( xnode = Node._getXNode( v ) ) return xnode;\r
+ case X_Node_TYPE.RAW_HTML :\r
+ 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- */ && Node._getXNode( parent );\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
this._rawObject = v;\r
this._xnodeType = 1;\r
- this._state = X.Dom.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
this.cssText( v.style.cssText );\r
- // X.Dom.Dirty.CSS を落とす\r
+ // X_Node_Dirty.CSS を落とす\r
this._dirty = 0;\r
- // attr の回収は不可能、、、\r
+ // TODO attr の回収は不可能、、、\r
if( X_UA_DOM.IE4 ){\r
v.setAttribute( 'UID', '' + uid );\r
} else {\r
};\r
// childNodes...\r
break;\r
- case Node.IS_RAW_TEXT :\r
- if( xnode = Node._getXNode( v ) ) return xnode;\r
- this.parent = Node._getXNode( v.parentNode );\r
+ 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
this._rawObject = v;\r
this._xnodeType = 3;\r
- this._state = X.Dom.State.DISPLAY_INLINE;\r
+ this._state = X_Node_State.DISPLAY_INLINE;\r
this._text = v.data;\r
v.UID = uid;\r
break;\r
- case Node.IS_HTML_STRING :\r
- case Node.IS_STRING :\r
+ case X_Node_TYPE.HTML_STRING :\r
+ case X_Node_TYPE.STRING :\r
if( xnodes = X.Dom.parse( v, true ) && 1 < xnodes.length ) return new X.Dom.NodeList( xnodes );\r
if( xnodes.length ) return xnodes[ 0 ];\r
return Node.none;\r
- case Node.IS_IMAGE :\r
- if( xnode = Node._getXNode( v ) ) return xnode;\r
+ case X_Node_TYPE.IMAGE :\r
+ if( xnode = X_Node_getXNode( v ) ) return xnode;\r
this._rawObject = v;\r
this._xnodeType = 4;\r
v.UID = uid;\r
- this._state = X.Dom.State.EXIST;\r
+ this._state = X_Node_State.EXIST;\r
break;\r
/*\r
- case Node.IS_WINDOW :\r
- case Node.IS_DOCUMENT :\r
- if( xnode = Node._getXNode( v ) ) return xnode;\r
+ case X_Node_TYPE.WINDOW :\r
+ case X_Node_TYPE.DOCUMENT :\r
+ if( xnode = X_Node_getXNode( v ) ) return xnode;\r
this._rawObject = v;\r
this._xnodeType = 2;\r
- this._state = X.Dom.State.DISPLAY_BLOCK;\r
+ this._state = X_Node_State.DISPLAY_BLOCK;\r
break; */\r
default :\r
if( Node.none ) return Node.none;\r
}\r
);\r
\r
-var Node = X.Dom.Node;\r
-\r
-Node.IS_XNODE = 1;\r
-Node.IS_RAW_HTML = 2;\r
-Node.IS_RAW_TEXT = 3;\r
-Node.IS_HTML_STRING = 4;\r
-Node.IS_STRING = 5;\r
-//Node.IS_DOC_FRAG = 6;\r
-Node.IS_XNODE_LIST = 7;\r
-Node.IS_WINDOW = 8;\r
-Node.IS_DOCUMENT = 9;\r
-Node.IS_IMAGE = 10;\r
-\r
-Node._getType = function( v ){\r
- if( v === '' ) return Node.IS_STRING;\r
+function X_Node_getType( v ){\r
+ if( v === '' ) return X_Node_TYPE.STRING;\r
if( !v ) return 0;\r
- if( v === window ) return Node.IS_WINDOW;\r
- if( v === document ) return Node.IS_DOCUMENT;\r
- if( v.constructor === Node ) return Node.IS_XNODE;\r
- if( v.constructor === X.Dom.NodeList ) return Node.IS_XNODE_LIST;\r
- if( X.Type.isHTMLElement( v ) ) return Node.IS_RAW_HTML;\r
- if( v.nodeType === 3 ) return Node.IS_RAW_TEXT;\r
- if( X.Type.isImage( v ) ) return Node.IS_IMAGE;\r
- if( typeof v === 'string' ){\r
- return '<' === v.charAt( 0 ) && v.charAt( v.length - 1 ) === '>' ? Node.IS_HTML_STRING : Node.IS_STRING;\r
+ if( v === window ) return X_Node_TYPE.WINDOW;\r
+ if( v === document ) return X_Node_TYPE.DOCUMENT;\r
+ if( v.constructor === Node ) return X_Node_TYPE.XNODE;\r
+ if( v.constructor === X.Dom.NodeList ) return X_Node_TYPE.XNODE_LIST;\r
+ if( X.Type.isHTMLElement( v ) ) return X_Node_TYPE.RAW_HTML;\r
+ if( v.nodeType === 3 ) return X_Node_TYPE.RAW_TEXT;\r
+ if( X.Type.isImage( v ) ) return X_Node_TYPE.IMAGE;\r
+ if( X.Type.isString( v ) ){\r
+ return '<' === v.charAt( 0 ) && v.charAt( v.length - 1 ) === '>' ? X_Node_TYPE.HTML_STRING : X_Node_TYPE.STRING;\r
};\r
- //if( v.nodeType === 11 ) return Node.IS_DOC_FRAG;\r
+ //if( v.nodeType === 11 ) return X_Node_TYPE.DOC_FRAG;\r
return 0;\r
};\r
-Node._getXNode = function( v ){\r
+function X_Node_getXNode( v ){\r
var uid, i, chashe, xnode;\r
- switch( Node._getType( v ) ){\r
- case Node.IS_XNODE :\r
- case Node.IS_XNODE_LIST :\r
+ switch( X_Node_getType( v ) ){\r
+ case X_Node_TYPE.XNODE :\r
+ case X_Node_TYPE.XNODE_LIST :\r
return v;\r
- case Node.IS_RAW_HTML :\r
- case Node.IS_IMAGE :\r
+ case X_Node_TYPE.RAW_HTML :\r
+ case X_Node_TYPE.IMAGE :\r
// fake TextNode too.\r
if( X_UA_DOM.IE4 ){\r
uid = v.getAttribute( 'UID' );\r
return uid && Node._chashe[ uid ];\r
};\r
return v.UID && Node._chashe[ v.UID ];\r
- case Node.IS_WINDOW :\r
+ case X_Node_TYPE.WINDOW :\r
return Node._window;\r
- case Node.IS_DOCUMENT :\r
+ case X_Node_TYPE.DOCUMENT :\r
return Node._document;\r
- case Node.IS_RAW_TEXT :\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
if( ( xnode = Node._chashe[ --i ] ) && ( xnode._rawObject === v ) ) return xnode;\r
\r
Node.create = function( tag, opt_attrs, opt_css ){\r
var list, i;\r
- switch( Node._getType( tag ) ){\r
- case Node.IS_STRING :\r
+ switch( X_Node_getType( tag ) ){\r
+ case X_Node_TYPE.STRING :\r
Node._newByTag = true;\r
return new Node( tag, opt_attrs, opt_css );\r
- case Node.IS_HTML_STRING :\r
+ case X_Node_TYPE.HTML_STRING :\r
list = X.Dom.parse( tag, true );\r
for( i = list.length; 1 < i; ){\r
list[ --i ].destroy();\r
\r
if( !( xnodes = this._xnodes ) ) this._xnodes = xnodes = [];\r
\r
- switch( Node._getType( v ) ){\r
- case Node.IS_RAW_HTML :\r
- case Node.IS_RAW_TEXT :\r
+ switch( X_Node_getType( v ) ){\r
+ case X_Node_TYPE.RAW_HTML :\r
+ case X_Node_TYPE.RAW_TEXT :\r
v = new Node( v );\r
break;\r
- case Node.IS_HTML_STRING :\r
- case Node.IS_STRING :\r
+ case X_Node_TYPE.HTML_STRING :\r
+ case X_Node_TYPE.STRING :\r
return this.append.apply( this, X.Dom.parse( v, true ) );\r
- case Node.IS_XNODE :\r
+ case X_Node_TYPE.XNODE :\r
if( v._xnodeType !== 1 && v._xnodeType !== 3 ) return this;\r
// 親の xnodes から v を消す\r
if( v.parent ){\r
return this;\r
};\r
\r
- switch( Node._getType( v ) ){\r
- case Node.IS_RAW_HTML :\r
- case Node.IS_RAW_TEXT :\r
+ switch( X_Node_getType( v ) ){\r
+ case X_Node_TYPE.RAW_HTML :\r
+ case X_Node_TYPE.RAW_TEXT :\r
v = new Node( v );\r
break;\r
- case Node.IS_HTML_STRING :\r
- case Node.IS_STRING :\r
+ case X_Node_TYPE.HTML_STRING :\r
+ case X_Node_TYPE.STRING :\r
v = X.Dom.parse( v, true );\r
for( i = v.length; i; ){\r
this.appendAt( start, v[ --i ] );\r
};\r
return this;\r
- case Node.IS_XNODE :\r
+ case X_Node_TYPE.XNODE :\r
if( v._xnodeType !== 1 && v._xnodeType !== 3 ) return this;\r
// 親の xnodes から v を消す\r
if( v.parent ){\r
};\r
\r
Node.prototype.appendTo = function( parent, opt_index ){\r
- switch( Node._getType( parent ) ){\r
- case Node.IS_RAW_HTML :\r
+ switch( X_Node_getType( parent ) ){\r
+ case X_Node_TYPE.RAW_HTML :\r
parent = new Node( parent );\r
break;\r
- case Node.IS_HTML_STRING :\r
+ case X_Node_TYPE.HTML_STRING :\r
parent = X.Dom.parse( parent, true );\r
parent = parent[ 0 ] || parent;\r
- case Node.IS_XNODE :\r
+ case X_Node_TYPE.XNODE :\r
break;\r
default :\r
return this;\r
var elm, type, xnodes, i;\r
if( !v || this._xnodeType !== 1 ) return false;\r
// contains ie4+\r
- if( ( elm = this._rawObject || this._ie4getRawNode && this._ie4getRawNode() ) && document.contains && ( type = Node._getType( v ) ) && ( type === Node.IS_RAW_HTML || type === Node.IS_RAW_TEXT ) ){\r
+ if( ( elm = this._rawObject || this._ie4getRawNode && this._ie4getRawNode() ) && document.contains && ( type = X_Node_getType( v ) ) && ( type === X_Node_TYPE.RAW_HTML || type === X_Node_TYPE.RAW_TEXT ) ){\r
return elm.contains( v ); \r
};\r
//if( document.compareDocumentPosition ){\r
if( this._className === v ) return this;\r
v ? ( this._className = v ) : delete this._className;\r
};\r
- this._dirty |= X.Dom.Dirty.CLASSNAME;\r
+ this._dirty |= X_Node_Dirty.CLASSNAME;\r
this._root && this._reserveUpdate();\r
return this;\r
};\r
return this._text;\r
};\r
\r
- if( this._dirty & X.Dom.Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
+ if( this._dirty & X_Node_Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
delete this._cssText;\r
};\r
html = !Node._outerFlag ? [] : [\r
'<', this._tag,\r
this._id ? ' id="' + this._id + q : _,\r
this._className ? ' class="' + this._className + q : _,\r
- this._attrText === false ? ( this._attrText = X.Dom.Attr.objToAttrText( this._attrs ) ) : this._attrText,\r
+ this._attrText === false ? ( this._attrText = X_Node_Attr.objToAttrText( this._attrs ) ) : this._attrText,\r
this._cssText ? ' style="' + this._cssText + q : _,\r
'>' ];\r
\r
if( this._text !== text ){\r
text ? ( this._text = text ) : delete this.text;\r
this._root && this._reserveUpdate();\r
- this._dirty |= X.Dom.Dirty.CONTENT;\r
+ this._dirty |= X_Node_Dirty.CONTENT;\r
};\r
return this;\r
};\r
\r
Node.prototype._startUpdate = function(){\r
var removal, i, xnode, tmp;\r
- if( X.Dom.readyState < X.Dom.Event.DOM_INIT ){\r
+ if( X_Dom_readyState < X_TEMP.SYSTEM_EVENT_INIT ){\r
return;\r
};\r
if( this._updateTimerID ){\r
var elm = this._rawObject,\r
xnodes, l, i, frg, next, k, v;\r
\r
- if( this._state & X.Dom.State.IE5_DISPLAY_NONE_FIX ){\r
+ if( this._state & X_Node_State.IE5_DISPLAY_NONE_FIX ){\r
//alert( this._tag + ' ' + !!elm );\r
// filter の効いている要素だけdisplay:none が無視される模様。filter を切ればよい?\r
// 親が、display:none の場合は?\r
} else\r
if( ( xnodes = this._xnodes ) && ( l = xnodes.length ) ) {\r
\r
- /*if( elm.childNodes.length !== l && ( frg = X.Dom._useDocumentFragment ) ){\r
+ /*if( elm.childNodes.length !== l && ( frg = X_Node_useDocumentFragment ) ){\r
for( i = 0; i < l; ++i ){\r
frg.appendChild( xnodes[ i ]._actualCreate( true ) );\r
};\r
\r
delete this._fontSize;\r
this._dirty && this._updateRawNode( elm );\r
- if( this._state & X.Dom.State.IE5_DISPLAY_NONE_FIX ){\r
+ if( this._state & X_Node_State.IE5_DISPLAY_NONE_FIX ){\r
return nextElement;\r
};\r
return elm;\r
xnodes = this._xnodes;\r
l = xnodes ? xnodes.length : 0;\r
\r
- if( this._dirty & X.Dom.Dirty.IE4_TEXTNODE_FIX || ( this._state & X.Dom.State.IE4_ONLY_TEXT && ( l !== 1 || xnodes[ 0 ]._xnodeType !== 3 ) ) ){ // 1 < l && elm.children.length === 0\r
+ if( this._dirty & X_Node_Dirty.IE4_TEXTNODE_FIX || ( this._state & X_Node_State.IE4_ONLY_TEXT && ( l !== 1 || xnodes[ 0 ]._xnodeType !== 3 ) ) ){ // 1 < l && elm.children.length === 0\r
html = [];\r
for( i = 0; i < l; ++i ){\r
html[ i ] = xnodes[ i ]._actualCreate();\r
for( i = 0; i < l; ++i ){\r
xnodes[ i ]._afterActualCreate();\r
};\r
- this._state &= ~X.Dom.State.IE4_ONLY_TEXT;\r
+ this._state &= ~X_Node_State.IE4_ONLY_TEXT;\r
} else\r
- if( this._state & X.Dom.State.IE4_ONLY_TEXT ){ // textNode が swap した場合の検出は、_root で行う\r
+ if( this._state & X_Node_State.IE4_ONLY_TEXT ){ // textNode が swap した場合の検出は、_root で行う\r
text = xnodes[ 0 ];\r
if( text._dirty || !text._root ){\r
elm.innerHTML = text._text;\r
var attrs, rename, k, v;\r
\r
// textNode\r
- if( this._dirty & X.Dom.Dirty.CONTENT ){\r
+ if( this._dirty & X_Node_Dirty.CONTENT ){\r
elm.data = X_String_chrReferanceTo( this._text );\r
delete this._dirty;\r
return;\r
};\r
// id\r
- if( this._dirty & X.Dom.Dirty.ID ){\r
+ if( this._dirty & X_Node_Dirty.ID ){\r
this._id ? ( elm.id = this._id ) : ( elm.id && elm.removeAttribute( 'id' ) ); \r
};\r
// className\r
- if( this._dirty & X.Dom.Dirty.CLASSNAME ){\r
+ if( this._dirty & X_Node_Dirty.CLASSNAME ){\r
this._className ? ( elm.className = this._className ) : ( elm.className && elm.removeAttribute( X.UA.IE5678 ? 'className' : 'class' ) ); // className は ie7-? \r
\r
// ie5 only\r
- if( X.Dom.State.IE5_DISPLAY_NONE_FIX && elm.currentStyle.display === 'none' ){\r
+ if( X_Node_State.IE5_DISPLAY_NONE_FIX && elm.currentStyle.display === 'none' ){\r
this._actualRemove();\r
- this._state |= X.Dom.State.IE5_DISPLAY_NONE_FIX;\r
+ this._state |= X_Node_State.IE5_DISPLAY_NONE_FIX;\r
return;\r
};\r
};\r
// style\r
// TODO display:none の場合、更新をスキップ\r
- if( this._dirty & X.Dom.Dirty.CSS ){\r
+ if( this._dirty & X_Node_Dirty.CSS ){\r
if( this._cssText !== null || ( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
X.UA.Opera78 || X.UA.NN6 ?\r
elm.setAttribute( 'style', this._cssText ) : // opera8用\r
};\r
};\r
\r
- if( this._dirty & X.Dom.Dirty.IE_FILTER ){\r
+ if( this._dirty & X_Node_Dirty.IE_FILTER ){\r
elm.style.filter = X.Dom.Style.SPECIAL_FIX( this._css );\r
};\r
\r
// attr\r
// TODO display:none の場合、更新をスキップ\r
- if( this._dirty & X.Dom.Dirty.ATTR && ( attrs = this._newAttrs || this._attrs ) ){\r
- rename = X.Dom.Attr.renameForDOM;\r
+ if( this._dirty & X_Node_Dirty.ATTR && ( attrs = this._newAttrs || this._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( this._tag === 'TEXTAREA' && k === 'value' ){\r
// TODO IE では input, なぜか buttonも、type の変更が出来ない、object も 同値で置き換えようとしても不可\r
( v = attrs[ k ] ) === undefined ?\r
elm.removeAttribute( rename[ k ] || k ) :\r
- ( elm[ rename[ k ] || k ] = X.Dom.Attr.noValue[ k ] ? k : v ); \r
+ ( elm[ rename[ k ] || k ] = X_Node_Attr.noValue[ k ] ? k : v ); \r
\r
};\r
delete this._newAttrs;\r
var attrs, rename, k, v;\r
\r
// fake textNode\r
- if( this._dirty & X.Dom.Dirty.CONTENT ){\r
+ if( this._dirty & X_Node_Dirty.CONTENT ){\r
elm.innerText = this._text;\r
delete this._dirty;\r
return;\r
* title、className、id、lang、language には setAttribute でなく、element.id で直接読み書きできる\r
*/ \r
// id\r
- if( this._dirty & X.Dom.Dirty.CONTENT ) elm.setAttribute( 'id', this._id || ( 'ie4uid' + xnode._uid ) );\r
+ if( this._dirty & X_Node_Dirty.CONTENT ) elm.setAttribute( 'id', this._id || ( 'ie4uid' + xnode._uid ) );\r
\r
// className\r
- if( this._dirty & X.Dom.Dirty.CLASSNAME ){\r
+ if( this._dirty & X_Node_Dirty.CLASSNAME ){\r
this._className ? ( elm.className = this._className ) : elm.removeAttribute( 'class' );\r
};\r
// style\r
- if( this._dirty & X.Dom.Dirty.CSS ){\r
+ if( this._dirty & X_Node_Dirty.CSS ){\r
if( this._cssText !== null || ( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
elm.style.cssText = this._cssText;\r
} else {\r
};\r
};\r
\r
- if( this._dirty & X.Dom.Dirty.IE_FILTER ){\r
+ if( this._dirty & X_Node_Dirty.IE_FILTER ){\r
this._rawObject.style.filter = X.Dom.Style.SPECIAL_FIX( this._css );\r
};\r
\r
// attr\r
- if( this._dirty & X.Dom.Dirty.ATTR && ( attrs = this._newAttrs || this._attrs ) ){\r
- rename = X.Dom.Attr.renameForDOM;\r
+ if( this._dirty & X_Node_Dirty.ATTR && ( attrs = this._newAttrs || this._attrs ) ){\r
+ rename = X_Node_Attr.renameForDOM;\r
for( k in attrs ){\r
( v = attrs[ k ] ) === undefined ?\r
elm.removeAttribute( rename[ k ] || k ) :\r
this._tag === 'TEXTAREA' && k === 'value' ?\r
( elm.innerText = v ) :\r
- elm.setAttribute( rename[ k ] || k, X.Dom.Attr.noValue[ k ] ? k : v ); // TODO X.Dom.Attr.noValue[ k ] ? k : v\r
+ elm.setAttribute( rename[ k ] || k, X_Node_Attr.noValue[ k ] ? k : v ); // TODO X_Node_Attr.noValue[ k ] ? k : v\r
};\r
delete this._newAttrs;\r
};\r
};\r
\r
if( !elm ){\r
- if( this._dirty & X.Dom.Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
+ if( this._dirty & X_Node_Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
delete this._cssText;\r
};\r
this._isNew = true;\r
this._rawObject = elm =\r
- X.Dom._strictElmCreation ?\r
+ X_Node_strictElmCreation ?\r
document.createElement( [\r
'<', this._tag,\r
' UID="', this._uid, '"',\r
this._id ? ' id="' + this._id + '"' : '',\r
this._className ? ' class="' + this._className + '"' : '',\r
- this._attrText === false ? ( this._attrText = X.Dom.Attr.objToAttrText( this._attrs ) ) : this._attrText,\r
+ this._attrText === false ? ( this._attrText = X_Node_Attr.objToAttrText( this._attrs ) ) : this._attrText,\r
this._cssText ? ' style="' + this._cssText + '"' : '',\r
'>' ].join( '' ) ) :\r
document.createElement( this._tag );\r
};\r
- if( X.Dom._useDocumentFragment ){\r
+ if( X_Node_useDocumentFragment ){\r
if( ( xnodes = this._xnodes ) && ( l = xnodes.length ) ){\r
- !isChild && ( frg = X.Dom._useDocumentFragment ).appendChild( elm );\r
+ !isChild && ( frg = X_Node_useDocumentFragment ).appendChild( elm );\r
for( i = 0; i < l; ++i ){\r
elm.appendChild( xnodes[ i ]._actualCreate( true ) );\r
};\r
} else {\r
if( this._rawObject && !isChild ) this._actualRemove( true );\r
\r
- if( this._dirty & X.Dom.Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
+ if( this._dirty & X_Node_Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
delete this._cssText;\r
};\r
\r
html = [\r
'<', this._tag, ' id=', ( this._id || ( 'ie4uid' + uid ) ), ' UID="', uid, '"',\r
this._className ? ' class="' + this._className + '"' : '',\r
- this._attrText === false ? ( this._attrText = X.Dom.Attr.objToAttrText( this._attrs ) ) : this._attrText,\r
+ this._attrText === false ? ( this._attrText = X_Node_Attr.objToAttrText( this._attrs ) ) : this._attrText,\r
this._cssText ? ' style="' + this._cssText + '"' : '',\r
'>' ];\r
\r
// only textnode\r
html[ n ] = xnodes[ 0 ]._text;\r
++n;\r
- this._state |= X.Dom.State.IE4_ONLY_TEXT;\r
+ this._state |= X_Node_State.IE4_ONLY_TEXT;\r
} else {\r
for( i = 0; i < l; ++i ){\r
html[ n ] = xnodes[ i ]._actualCreate( true );\r
l = xnodes && xnodes.length;\r
\r
if( this._isNew ){\r
- if( !X.Dom._useDocumentFragment && l ){// docFrg が使えない場合、doc 追加後に子を追加\r
+ if( !X_Node_useDocumentFragment && l ){// docFrg が使えない場合、doc 追加後に子を追加\r
for( i = 0; i < l; ++i ){\r
elm.appendChild( xnodes[ i ]._actualCreate( true ) );\r
};\r
};\r
- if( X.Dom._strictElmCreation ){\r
- if( this._dirty & X.Dom.Dirty.IE_FILTER ){\r
+ if( X_Node_strictElmCreation ){\r
+ if( this._dirty & X_Node_Dirty.IE_FILTER ){\r
elm.style.filter = X.Dom.Style.SPECIAL_FIX( this._css );\r
};\r
delete this._dirty;\r
} else {\r
elm.UID = this._uid;\r
this._newAttrs = this._attrs;\r
- this._dirty = X.Dom.Dirty.ID | X.Dom.Dirty.CLASSNAME | X.Dom.Dirty.CSS | X.Dom.Dirty.ATTR | X.Dom.Dirty.IE_FILTER;\r
+ this._dirty = X_Node_Dirty.ID | X_Node_Dirty.CLASSNAME | X_Node_Dirty.CSS | X_Node_Dirty.ATTR | X_Node_Dirty.IE_FILTER;\r
this._updateRawNode( elm );\r
};\r
\r
};\r
};\r
// textarea への value の適用はここで\r
- if( this._dirty & X.Dom.Dirty.IE_FILTER ){\r
+ if( this._dirty & X_Node_Dirty.IE_FILTER ){\r
this._ie4getRawNode().style.filter = X.Dom.Style.SPECIAL_FIX( this._css );\r
};\r
delete this._dirty;\r
if( !elm ) return;\r
this._xnodeType === 1 && X_EventDispatcher_toggleAllEvents( this, false );// イベントの退避\r
\r
- if( X.Dom.Attr.HAS_VALUE[ this._tag ] && ( !this._newAttrs || !X_Object_inObject( 'value', this._newAttrs ) ) ){\r
+ if( X_Node_Attr.HAS_VALUE[ this._tag ] && ( !this._newAttrs || !X_Object_inObject( 'value', this._newAttrs ) ) ){\r
this._attrs.value = elm.value;\r
};\r
elm.removeAttribute( 'id' ); // ?\r