OSDN Git Service

Version 0.6.44, fixed X.Class for safari1.
[pettanr/clientJs.git] / 0.6.x / js / dom / 12_XDomEvent.js
index b08ade8..b29f3f8 100644 (file)
@@ -154,7 +154,7 @@ X.Dom.Event.BASE_FONT_RESIZED   = ++X.Event._LAST_EVENT;
 // same_page_jump\r
 // on_screen_keyboard_show\r
 // on_screen_keyboard_hide\r
-X.Dom.Event.BEFORE_UPDATE       = ++X.Event._LAST_EVENT;\r
+// X.Dom.Event.BEFORE_UPDATE       = ++X.Event._LAST_EVENT; // このイベントで要素のサイズを取得すると無限ループに!\r
 X.Dom.Event.AFTER_UPDATE        = ++X.Event._LAST_EVENT;\r
 // hash_change\r
 X.Dom.Event.BEFORE_UNLOAD       = ++X.Event._LAST_EVENT;\r
@@ -228,7 +228,7 @@ X.Dom.Node.prototype._addEvent =
                        this._rawNode.attachEvent( 'on' + type, this._handleEvent );\r
                }) :\r
                (function( type ){\r
-                       var elm = this._ie4getRawNode();\r
+                       var elm = this._rawNode || this._ie4getRawNode && this._ie4getRawNode();\r
                        if( !elm ) return;\r
                        this._handleEvent = elm[ 'on' + type ] = this._handleEvent || X.Callback.create( this );\r
                });\r
@@ -278,7 +278,7 @@ X.Dom.Node.prototype._removeEvent =
                        };\r
                }) :\r
                (function( type ){\r
-                       var elm = this._rawNode || this._ie4getRawNode();\r
+                       var elm = this._rawNode || this._ie4getRawNode && this._ie4getRawNode();\r
                        if( !elm ) return;\r
                        elm[ 'on' + type ] = X.emptyFunction;\r
                        elm[ 'on' + type ] = '';\r
@@ -361,7 +361,14 @@ if( 5 <= X.UA.IE && X.inHead ){
        document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );\r
        X.Dom._script = document.getElementById( "__ie_onload" );\r
        X.Dom._script.onreadystatechange = function(){\r
-               this.readyState === 'complete' && X.Dom._init();\r
+               var s = X.Dom._script;\r
+               if( s && this.readyState === 'complete' ){\r
+                       s.onreadystatechange = X.emptyFunction;\r
+                       s.onreadystatechange = null;\r
+                       s.parentNode.removeChild( s );\r
+                       delete X.Dom._script;\r
+                       X.Dom._init && X.Dom._init();\r
+               };\r
        };\r
 } else\r
 // Re: onLoad doesn't work with Safari?\r