OSDN Git Service

Version 0.6.44, fixed X.Class for safari1.
[pettanr/clientJs.git] / 0.6.x / js / dom / 11_XDomNode.js
index 2ad123d..86c75db 100644 (file)
@@ -1,4 +1,3 @@
-\r
 X.Dom.Dirty = {\r
        CLEAN            :  0,\r
        CHILD_IS_DIRTY   :  1,\r
@@ -12,8 +11,6 @@ X.Dom.Dirty = {
        IE4_TEXTNODE_FIX : 256\r
 };\r
 \r
-ie55 = 7;\r
-\r
 X.Dom.State = {\r
        DESTROYED          : 0,\r
        EXIST              : 1,\r
@@ -28,9 +25,11 @@ X.Dom.State = {
        HAS_HEIGHT_LENGTH  : 512,\r
        HAS_HEIGHT_PERCENT : 1024,\r
        IE4_ONLY_TEXT      : 2048,\r
-       IE5_DISPLAY_NONE_FIX : 5 <= X.UA.IE && X.UA.IE < ie55 ? 4096 : 0\r
+       IE5_DISPLAY_NONE_FIX : 5 <= X.UA.IE && X.UA.IE < 5.5 ? 4096 : 0 // MacIE5.2- は ?\r
 };\r
 \r
+X.Dom._strictElmCreation = X.UA.IE && X.UA.IE < 9;// && !X.UA.MacIE;\r
+\r
 /*\r
  * Node( rawElement | rawTextnode | htmlString | textString )\r
  */\r
@@ -58,7 +57,7 @@ X.Dom.Node = X.EventDispatcher.inherits(
 \r
                _attrs     : null, // X.Dom.Attr\r
                _newAttrs  : null,\r
-               _attrText  : '',\r
+               _attrText  : ' ', // X.Dom.Attr.objToAttrText が必要な場合は false が入っている\r
                \r
                _css       : null, // X.Dom.Style\r
                _cssText   : null,\r
@@ -837,8 +836,8 @@ Node.prototype._startUpdate = function(){
        } else {\r
                return;\r
        };\r
-\r
-       X.Dom._listeners && X.Dom._listeners[ X.Dom.Event.BEFORE_UPDATE ] && X.Dom.dispatch( { type : X.Dom.Event.BEFORE_UPDATE } );\r
+       // このイベントでサイズを取ると無限ループに\r
+       // X.Dom._listeners && X.Dom._listeners[ X.Dom.Event.BEFORE_UPDATE ] && X.Dom.dispatch( { type : X.Dom.Event.BEFORE_UPDATE } );\r
 \r
        removal = Node._reserveRemoval;\r
        \r
@@ -851,12 +850,12 @@ Node.prototype._startUpdate = function(){
                        xnode._actualRemove();\r
                        !this._state && xnode.kill();\r
                };\r
-               removal.length = 0;             \r
+               removal.length = 0;\r
        };\r
        \r
        Node._html._dirty ? Node._html._commitUpdate() : this._commitUpdate();\r
        \r
-       X.Dom._listeners && X.Dom._listeners[ X.Dom.Event.AFTER_UPDATE ] && X.Dom.dispatch( { type : X.Dom.Event.AFTER_UPDATE } );\r
+       X.Dom._listeners && X.Dom._listeners[ X.Dom.Event.AFTER_UPDATE ] && X.Dom.asyncDispatch( 0, { type : X.Dom.Event.AFTER_UPDATE } );\r
        //this._rawNode.style.visibility = tmp;\r
 };\r
 \r
@@ -988,8 +987,9 @@ Node.prototype._updateRawNode =
                        // style\r
                        if( this._dirty & X.Dom.Dirty.CSS ){\r
                                if( this._cssText || ( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
-                                       elm.style.cssText = this._cssText;\r
-                                       //elm.setAttribute( 'style', this._cssText );\r
+                                       X.UA.Opera && X.UA.Opera < 9 ?\r
+                                               elm.setAttribute( 'style', this._cssText ) : // opera8用\r
+                                               ( elm.style.cssText = this._cssText );\r
                                } else {\r
                                        elm.style.cssText = ''; // IE5.5以下 Safari3.2 で必要\r
                                        elm.removeAttribute( 'style' );\r
@@ -1109,7 +1109,7 @@ Node.prototype._actualCreate =
                        };\r
                        this._isNew = true;\r
                        this._rawNode = elm =\r
-                               ie55 <= X.UA.IE && X.UA.IE < 9 ?\r
+                               X.Dom._strictElmCreation ?\r
                                        document.createElement( [\r
                                                '<', this._tag,\r
                                                        ' UID="', this._uid, '"',\r
@@ -1200,7 +1200,7 @@ Node.prototype._afterActualCreate =
                        //      this._dirty = X.Dom.Dirty.CSS | X.Dom.Dirty.IE_FILTER;\r
                        //      this._updateRawNode( elm );\r
                        //} else\r
-                       if( !X.UA.IE || X.UA.IE < ie55 || 9 <= X.UA.IE ){\r
+                       if( !X.Dom._strictElmCreation ){\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