\r
function X_NET_GIMR_detectImageOverIframe(){\r
var raw = X_NET_GIMR_gadgetIframe[ '_rawObject' ],\r
- iwin, ret;\r
+ iwin, ret, error, data = null;\r
\r
if( raw ){\r
iwin = raw.contentWindow || ( raw.contentDocument && raw.contentDocument.parentWindow ) || window.frames[ X_NET_GIMR_iframeName ];\r
break;\r
\r
case 2 : // _waiting_ 通信結果待ち\r
- ret = decodeURIComponent( ret.substr( 1 ) );\r
- ret = window.JSON ? JSON.parse( ret ) : eval( '(' + ret + ')' );\r
+ ret = X_String_parseTrustedJsonString( decodeURIComponent( ret.substr( 1 ) ) );\r
+ \r
+ error = ret[ 'errors' ] && ret[ 'errors' ].length;\r
+ \r
+ switch( !error && X_NET_GIMR_requestOriginal[ 'dataType' ] ){\r
+ case 'json' :\r
+ data = X_String_parseTrustedJsonString( ret[ 'json' ] || ret[ 'text' ] || '' );\r
+ break;\r
+ };\r
+ \r
+ console.dir( data || ret );\r
\r
X_NET_GIMRWrapper._busy = false;\r
\r
X_NET_GIMRWrapper\r
- [ 'asyncDispatch' ]( {\r
- type : ret[ 'errors' ] && ret[ 'errors' ].length ? X_EVENT_ERROR : X_EVENT_SUCCESS,\r
- data : ret\r
- } );\r
+ [ 'asyncDispatch' ]({\r
+ type : error ? X_EVENT_ERROR : X_EVENT_SUCCESS,\r
+ state : ret[ 'rc' ] || ( error ? 400 : 200 ),\r
+ data : data,\r
+ 'headers' : ret[ 'headers' ],\r
+ 'message' : error && ret[ 'errors' ].join( '\n' )\r
+ });\r
iwin.location.href = X_NET_GIMR_GADGET_URL + '#_recived_';\r
X_NET_GIMR_timerID = X_NET_GIMR_phase = 0;\r
X_NET_GIMR_lastHashString = '';\r
};\r
\r
\r
+X_TEMP.X_Net_GIMR_init = function(){\r
+ \r
+delete X_TEMP.X_Net_GIMR_init;\r
+\r
// TODO extend NinjaIframe\r
X_NET_GIMRWrapper = X_Class_override(\r
X_EventDispatcher(),\r
_onloadCount : 0,\r
\r
load : function( obj ){\r
- var k;\r
+ var k, v;\r
//createURL\r
if( !X_NET_GIMR_gadgetIframe ){\r
X_NET_GIMR_gadgetIframe = X_Node_systemNode\r
\r
X_NET_GIMR_timerID = X.Timer.add( 100, 0, X_NET_GIMR_detectImageOverIframe );\r
\r
- X_NET_GIMR_requestOriginal = X_Object_deepCopy( v );\r
+ X_NET_GIMR_requestOriginal = X_Object_deepCopy( obj );\r
\r
X_NET_GIMR_requestOptions = {\r
'CONTENT_TYPE' : 'TEXT',\r
'GET_FULL_HEADERS' : true,\r
- 'REFRESH_INTERVAL' : 0\r
+ 'REFRESH_INTERVAL' : 0,\r
+ 'url' : obj[ 'url' ]\r
};\r
\r
for( k in obj ){\r
X_NET_GIMR_requestOptions[ 'METHOD' ] = v;\r
break; \r
case 'dataType' :\r
- X_NET_GIMR_requestOptions[ 'CONTENT_TYPE' ] = v;\r
+ // TEXT 以外は無視される?\r
+ switch( v = ( '' + v ).toUpperCase() ){\r
+ case 'TEXT' :\r
+ case 'JSON' :\r
+ X_NET_GIMR_requestOptions[ 'CONTENT_TYPE' ] = v;\r
+ break;\r
+ case 'DOM' :\r
+ case 'HTML' :\r
+ case 'HTM' :\r
+ case 'XML' :\r
+ X_NET_GIMR_requestOptions[ 'CONTENT_TYPE' ] = 'DOM';\r
+ break;\r
+ //case 'FEED' :\r
+ }; \r
break;\r
case 'headers' :\r
- X_NET_GIMR_requestOptions[ 'HEADERS' ] = X_Object_clone( v );\r
+ X_NET_GIMR_requestOptions[ 'HEADERS' ] = X_NET_GIMR_requestOriginal[ v ];\r
break;\r
case 'cashe' :\r
X_NET_GIMR_requestOptions[ 'REFRESH_INTERVAL' ] = 3600;\r
}\r
}\r
);\r
+\r
+return X_NET_GIMRWrapper;\r
+\r
+};\r
+\r