- if( X_Net_XHR_X_DOMAIN ){\r
- if( X_URL_isSameDomain( url ) ){ // isXDomain\r
- if( this._isXDR ){\r
- X_EventDispatcher_toggleAllEvents( this, false );\r
- this[ '_rawObject' ] = raw = X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X;\r
- X_EventDispatcher_toggleAllEvents( this, true );\r
- this._isXDR = false;\r
- };\r
+ if( !raw || xDomain !== this._isXDR || ( X_Net_XHR_createMSXML && isFile !== this._isMsXML ) ){\r
+ \r
+ this[ 'unlisten' ]( [ 'load', 'readystatechange', 'progress', 'error', 'timeout' ] );\r
+ \r
+ this[ '_rawObject' ] = raw = xDomain ?\r
+ X_Net_XHR_createXDR() :\r
+ isFile ?\r
+ ( X_Net_XHR_createMSXML ?\r
+ ( X_Net_XHR_msXML = X_Net_XHR_msXML || X_Net_XHR_createMSXML() ):\r
+ X_Net_XHR_createW3C()\r
+ ) :\r
+ X_Net_XHR_createW3C ?\r
+ X_Net_XHR_createW3C() :\r
+ ( X_Net_XHR_msXML = X_Net_XHR_msXML || X_Net_XHR_createMSXML() );\r
+\r
+ // raw === XDR これは error になるのでフラグに控える\r
+ this._isXDR = X_Net_XHR_createXDR && xDomain;\r
+ this._isMsXML = !X_Net_XHR_createW3C || ( isFile && X_Net_XHR_createMSXML );\r
+\r
+ if( this._isMsXML ){\r
+ this[ 'listen' ]( 'readystatechange' ); // TODO ie7 ActiveX の場合、error は不可 toggleAllEvent のあたり\r
+ } else\r
+ if( X_UA[ 'IE8' ] ){\r
+ this[ 'listen' ]( [ 'readystatechange', 'error', 'timeout' ] );\r
+ } else\r
+ if( X_UA[ 'IE7' ] ){\r
+ this[ 'listen' ]( [ 'readystatechange', 'error' ] );\r
+ } else\r
+ if( X_Net_XHR_progress ){\r
+ this[ 'listen' ]( [ 'load', 'progress', 'error', 'timeout' ] ); //, 'abort'\r