From: itozyun Date: Mon, 15 Jun 2015 22:09:20 +0000 (+0900) Subject: Version 0.6.161, fix X.Net & X.SilverlightAudio. X-Git-Url: http://git.osdn.jp/view?p=pettanr%2FclientJs.git;a=commitdiff_plain;h=b722f049986136ce6f382557104f2ea9aabf797b Version 0.6.161, fix X.Net & X.SilverlightAudio. --- diff --git a/0.6.x/js/06_net/00_XNet.js b/0.6.x/js/06_net/00_XNet.js index fc5dc58..3073cf3 100644 --- a/0.6.x/js/06_net/00_XNet.js +++ b/0.6.x/js/06_net/00_XNet.js @@ -54,6 +54,13 @@ *
useFireWall
異なるドメインに jsonp を読み込んだ後、xdomain iframe 通信を使ってデータを受け取る。不正なコードの実行を防ぐことが出来る、未実装 * * + *

Form 用プロパティ

+ *
+ *
params
url パラメータを object で渡すことが出来る。 + *
method
'GET' or 'POST' + *
target
'_self', '_parent', '_top' の場合、ページから離脱する。target を指定せず同一ドメインの場合 response に body.innerHTML が返る。 + *
+ * * @alias X.Net * @class 各種ネットワーク機能をラップしインターフェイスを共通化する。 * @constructs Net @@ -73,7 +80,7 @@ * var net = X.Net( { jsonp : urlString, params : params, callbackName : callbackName, charset : charset, useFireWall : false } ); * * // Form - * var net = X.Net( { form : urlString, method : 'POST', target : '_self', params : {} } ); // _self, _parent, _top の場合、ページから離脱する + * var net = X.Net( { form : urlString, method : 'POST', target : '_self', params : {} } ); * * // Image preload & getSize * var net = X.Net( { image : src, sizeDetection : true } ); @@ -186,6 +193,16 @@ X[ 'Net' ] = X_EventDispatcher[ 'inherits' ]( */ 'busy' : function(){ return this === X_NET_currentQueue && X_NET_currentWrapper._busy; + }, + + /** + * 現在の状態。1:待機中 2:通信中 3:通信完了フェーズ + * @alias Net.prototype.state + */ + 'state' : function(){ + return this === X_NET_currentQueue ? + ( X_NET_completePhase ? 3 : 2 ) : + 0 <= X_NET_QUEUE_LIST.indexOf( this ) ? 1 : 0; } } ); diff --git a/0.6.x/js/06_net/01_XNetXHR.js b/0.6.x/js/06_net/01_XNetXHR.js index 7e3bfe7..1f49f10 100644 --- a/0.6.x/js/06_net/01_XNetXHR.js +++ b/0.6.x/js/06_net/01_XNetXHR.js @@ -431,12 +431,11 @@ X_TEMP.X_Net_XHR_params = { ( 200 <= status && status < 400 ) || //status === 304 || ( status === 1223 && ( status = 204 ) ) || - ( X_UA[ 'Webkit' ] && status === undefined && ( status = 200 ) ) // safari: /webkit/.test(userAgent) + ( X_UA[ 'Webkit' ] && status === undefined ) // safari: /webkit/.test(userAgent) ){ /* * opera8, safari2, khtml3 で utf8 日本語文字列の文字化け */ - // raw.getAllResponseHeaders(); // parse json, html, xml, text, script, css switch( X_NET_XHRWrapper._dataType ){ @@ -465,9 +464,9 @@ X_TEMP.X_Net_XHR_params = { break; }; - X_NET_XHRWrapper[ 'asyncDispatch' ]( 32, { type : X_EVENT_SUCCESS, status : status || 200, response : data, headers : headers || null } ); + X_NET_XHRWrapper[ 'asyncDispatch' ]( 32, { type : X_EVENT_SUCCESS, status : status || 200, response : data, 'headers' : headers || null } ); } else { - X_NET_XHRWrapper[ 'asyncDispatch' ]( 32, { type : X_EVENT_ERROR, status : raw.status || 0, 'percent' : 100, headers : headers || null } ); + X_NET_XHRWrapper[ 'asyncDispatch' ]( 32, { type : X_EVENT_ERROR, status : status || 400, 'headers' : headers || null } ); }; break; diff --git a/0.6.x/js/06_net/05_XXHRGadget.js b/0.6.x/js/06_net/05_XXHRGadget.js index bbff1e0..0a4cebc 100644 --- a/0.6.x/js/06_net/05_XXHRGadget.js +++ b/0.6.x/js/06_net/05_XXHRGadget.js @@ -110,17 +110,26 @@ function X_NET_GIMR_detectImageOverIframe(){ X_NET_GIMRWrapper._busy = false; - X_NET_GIMRWrapper - [ 'asyncDispatch' ]( e = { - type : error || ret[ 'rc' ] < 200 || 400 < ret[ 'rc' ] ? X_EVENT_ERROR : X_EVENT_SUCCESS, - status : ret[ 'rc' ] || ( error ? ret[ 'code' ] || 400 : 200 ), - response : data, - 'headers' : ret[ 'headers' ], + if( error || ret[ 'rc' ] < 200 || 400 < ret[ 'rc' ] ){ + e = { + type : X_EVENT_ERROR, + status : ret[ 'rc' ] || ret[ 'code' ] || 400, 'message' : error && ret[ 'errors' ].join( '\n' ) - }); + }; + } else { + e = { + type : X_EVENT_SUCCESS, + status : ret[ 'rc' ] || 200, + response : data + }; + }; - console.dir( e ); - + e[ 'headers' ] = ret[ 'headers' ]; + + X_NET_GIMRWrapper[ 'asyncDispatch' ]( e); + + //console.dir( e ); + X_NET_GIMR_timerID = X_NET_GIMR_phase = 0; X_NET_GIMR_lastHashString = ''; iwin.location.href = X_NET_GIMR_GADGET_URL + '#_recived_'; diff --git a/0.6.x/js/07_audio/03_XSilverlightAudio.js b/0.6.x/js/07_audio/03_XSilverlightAudio.js index fd9f694..a12ee10 100644 --- a/0.6.x/js/07_audio/03_XSilverlightAudio.js +++ b/0.6.x/js/07_audio/03_XSilverlightAudio.js @@ -17,9 +17,20 @@ var X_Audio_SLAudioWrapper, if( X[ 'Pulgin' ][ 'SilverlightEnabled' ] ){ + X_TEMP.slaudioInit = function(){ + // + // http://blog.yuhiisk.com/archive/2014/12/20/dynamic-loading-and-complete-processing-of-script.html + var s = document.createElement( '' ); + + document.getElementsByTagName( 'head' )[ 0 ].appendChild( s ); + s.text = ''; + + delete X_TEMP.slaudioInit; + }; + // X.Node.inherits はできない。_rawObject は でなく silverlight X_Audio_SLAudioWrapper = X_Audio_AbstractAudioBackend[ 'inherits' ]( - 'X.AV.SilverlightAudioWrapper', + 'X.AV.SilverlightAudio', X_Class.POOL_OBJECT, { '_rawType' : X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT, @@ -35,16 +46,8 @@ if( X[ 'Pulgin' ][ 'SilverlightEnabled' ] ){ _interval : 0, // setInterval timer id Constructor : function( target, source, option ){ - var xnodeScript; + !X_Audio_SLAudio_uid && X_TEMP.slaudioInit(); - if( !X_Audio_SLAudio_uid ){ - // source - //xnodeScript = X_Node_head[ 'create' ]( 'script', { type : 'text/xaml', id : 'silverlightaudio' } ); - //xnodeScript[ '_rawObject' ].innerHTML = ''; - - // html に以下を書いた - // - }; /* * [Silverlight 2]JavaScriptコードからSilverlightのオブジェクトを利用するには?[C#、VB] * http://www.atmarkit.co.jp/fdotnet/dotnettips/902slobjcallfromjs/slobjcallfromjs.html