OSDN Git Service

Version 0.6.39, bugfix for listenOnce().
[pettanr/clientJs.git] / 0.6.x / js / dom / 11_XDomNode.js
index 1d8733b..2ad123d 100644 (file)
@@ -76,7 +76,7 @@ X.Dom.Node = X.EventDispatcher.inherits(
                                this._xnodeType = 1;\r
                                this._state     = X.Dom.State.DISPLAY_INLINE; // todo\r
                                arguments[ 1 ] && this.attr( arguments[ 1 ] );\r
-                               css = arguments[ 2 ];\r
+                               css = arguments[ 2 ] || arguments[ 1 ];\r
                                css && this[ X.Type.isString( css ) ? 'cssText' : 'css' ]( css );\r
                        } else\r
                        if( Node._newByText ){\r
@@ -131,8 +131,12 @@ X.Dom.Node = X.EventDispatcher.inherits(
                                                if( xnodes.length ) return xnodes[ 0 ];\r
                                                return Node.none;\r
                                        case Node.IS_IMAGE :\r
-                                               v.UID = uid;\r
-                                               this._isImage = true;\r
+                                               if( xnode = Node._getXNode( v ) ) return xnode;\r
+                                               this._rawNode   = v;\r
+                                               this._xnodeType = 4;\r
+                                               v.UID           = uid;\r
+                                               this._state     = X.Dom.State.EXIST;\r
+                                               break;\r
                                        case Node.IS_WINDOW :\r
                                        case Node.IS_DOCUMENT :\r
                                                if( xnode = Node._getXNode( v ) ) return xnode;\r
@@ -206,6 +210,7 @@ Node._getXNode = function( v ){
                case Node.IS_DOCUMENT :\r
                        return Node._document;\r
                case Node.IS_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._rawNode === v ) ) return xnode;\r
                        };\r
@@ -242,7 +247,8 @@ Node.isXmlDocument =
        X.Dom.DOM_IE4 ?\r
                X.emptyFunction :\r
                (function( root ){\r
-                       return root._rawNode.createElement( 'p' ).tagName !== root._rawNode.createElement( 'P' ).tagName;\r
+                       if( X.Type.isBoolean( root.isXML ) ) return root.isXML;\r
+                       return root.isXML = root._rawNode.createElement( 'p' ).tagName !== root._rawNode.createElement( 'P' ).tagName;\r
                });\r
 \r
 Node._chashe     = [];\r
@@ -761,7 +767,7 @@ Node.prototype.html = function( html ){
                };\r
                if( Node._outerFlag === this )  Node._outerFlag = null;\r
        };\r
-       !Node._outerFlag || X.Dom.DTD.EMPTY[ this._tag.toLowerCase() ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
+       !Node._outerFlag || X.Dom.DTD.EMPTY[ this._tag ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
        return html.join( _ );\r
 };\r
 \r
@@ -1009,7 +1015,8 @@ Node.prototype._updateRawNode =
                                        };\r
                                        ( v = attrs[ k ] ) === undefined ?\r
                                                elm.removeAttribute( rename[ k ] || k ) :\r
-                                               ( elm[ rename[ k ] || k ] = v );\r
+                                               ( elm[ rename[ k ] || k ] = v );                                                \r
+\r
                                };\r
                                delete this._newAttrs;\r
                        };\r
@@ -1160,7 +1167,7 @@ Node.prototype._actualCreate =
                                        };                                      \r
                                };\r
                        };\r
-                       X.Dom.DTD.EMPTY[ this._tag.toLowerCase() ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
+                       X.Dom.DTD.EMPTY[ this._tag ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
                        \r
                        delete this._newAttrs;\r
                };\r