OSDN Git Service

Version 0.6.161, fix X.Net & X.SilverlightAudio.
authoritozyun <itozyun@user.sourceforge.jp>
Mon, 15 Jun 2015 22:09:20 +0000 (07:09 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Mon, 15 Jun 2015 22:09:20 +0000 (07:09 +0900)
0.6.x/js/06_net/00_XNet.js
0.6.x/js/06_net/01_XNetXHR.js
0.6.x/js/06_net/05_XXHRGadget.js
0.6.x/js/07_audio/03_XSilverlightAudio.js

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