OSDN Git Service

Version 0.6.177, bugfix.
authoritozyun <itozyun@user.sourceforge.jp>
Tue, 6 Oct 2015 13:43:48 +0000 (22:43 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Tue, 6 Oct 2015 13:43:48 +0000 (22:43 +0900)
0.6.x/js/01_core/02_XUA.js
0.6.x/js/03_plugin/00_XPlugin.js
0.6.x/js/06_net/00_XNet.js
0.6.x/js/06_net/02_XNetJSONP.js
0.6.x/js/06_net/05_XXHRGadget.js
0.6.x/js/07_audio/03_XSilverlightAudio.js

index c45d86e..da6f8e2 100644 (file)
@@ -791,23 +791,6 @@ if( X_UA[ 'Safari' ]  && X_UA[ 'WebKit' ] < 525.13 ){
        };\r
 };*/\r
 \r
-// TODO 構文のサポート instanceof, in, try catch\r
-\r
-if( X_UA[ 'IE' ] < 7 ){ // error @ NN7.2\r
-       X_UA[ 'IE4' ] || X_UA[ 'MacIE' ] ?\r
-               document.execCommand && document.execCommand( 'BackgroundImageCache', false, true ) :\r
-               (function(){\r
-                       /**\r
-                        * ie7 以下で実行する document.execCommand( 'BackgroundImageCache', false, true ) の失敗。\r
-                        * bonus: hotfix for IE6 SP1 (bug KB823727)\r
-                        * multipleIEs IE6 standalone 版では不可, IE5.5 は可,,,\r
-                        * @alias X.UA.ieExeComError */\r
-                       X_UA[ 'ieExeComError' ] = eval( 'var a=1;try{document.execCommand&&document.execCommand("BackgroundImageCache",!1,!0)}catch(e){a=0}!a' );\r
-               })();\r
-       \r
-       //X_UA[ 'ieExeComError' ] && alert( 'document.execCommand error!' );\r
-};\r
-\r
 /*\r
  * HTML5 に対応しない IE8 以下でも <a> の下に <div> を作ることができる\r
  * その際に <div> の直前に改行文字が出現するが childNodes は長さ 1 で <div> だけの模様、、、\r
@@ -840,19 +823,19 @@ if( X_UA[ 'IE' ] < 9 && X_Script_VBS_ENABLED ){
                s.text = lines.join( '\n' );\r
                \r
        })( [\r
-                               'Function vba_createAXO(v)',\r
+                               'Function vba_testAXO(v)',\r
                                        'On Error Resume Next',\r
                                        'Set ax = CreateObject(v)',\r
                                        'If Err.Number Then',\r
                                                'ax = 1',\r
                                        'End If',\r
                                        'Err.Clear',\r
-                                       'vba_createAXO = ax',\r
+                                       'vba_testAXO = ax',\r
                                'End Function' /*,\r
                                \r
                                'Function vba_try(jsFunc,a1,a2,a3,a4)',\r
                                        'On Error Resume Next',\r
-                                       'Dim rs = jsFunc(a1,a2,a3,a4)',\r
+                                       'Set rs = jsFunc(a1,a2,a3,a4)',\r
                                        'If Err.Number != 0 Then',\r
                                                'rs = 0',\r
                                        'End If',\r
@@ -865,26 +848,41 @@ if( X_UA[ 'IE' ] < 9 && X_Script_VBS_ENABLED ){
 };\r
 \r
 function X_Script_try( func, args ){\r
-\r
        if( X_UA[ 'IE' ] < 5.5 ){\r
-               \r
-       } else {\r
-               return ( new Function( 'f,a', 'try{return f.apply({},a)}catch(e){}' ) )( func, args || [] );\r
+               return func.apply( {}, args );\r
        };\r
+       return ( new Function( 'f,a', 'try{return f.apply({},a)}catch(e){}' ) )( func, args || [] );\r
 };\r
 \r
 function X_Script_createActiveXObjectSafty( name ){\r
        if( X_UA[ 'IE' ] < 9 ){\r
                if( X_Script_VBS_ENABLED ){\r
-                       return window[ 'vba_createAXO' ]( name ) ? null : X_Script_createActiveXObject( name );\r
+                       console.log( window[ 'vba_testAXO' ]( name ) + ' ' + name );\r
+                       return !window[ 'vba_testAXO' ]( name ) && X_Script_createActiveXObject( name );\r
                };\r
                return X_Script_createActiveXObject( name );\r
-       } else {\r
-               return X_Script_try( X_Script_createActiveXObject, [ name ] );\r
        };\r
+       \r
+       return X_Script_try( X_Script_createActiveXObject, [ name ] );\r
 };\r
 \r
 function X_Script_createActiveXObject( name ){\r
        return new ActiveXObject( name );\r
 };\r
 \r
+// TODO 構文のサポート instanceof, in, try catch\r
+\r
+if( X_UA[ 'IE' ] < 7 ){ // error @ NN7.2\r
+       X_UA[ 'IE4' ] || X_UA[ 'IE5' ] || X_UA[ 'MacIE' ] ?\r
+               document.execCommand && document.execCommand( 'BackgroundImageCache', false, true ) :\r
+               (\r
+                       X_Script_try( function(){ document.execCommand( 'BackgroundImageCache', false, true ); return 1; } ) &&\r
+                               /**\r
+                                * ie7 以下で実行する document.execCommand( 'BackgroundImageCache', false, true ) の失敗。\r
+                                * bonus: hotfix for IE6 SP1 (bug KB823727)\r
+                                * multipleIEs IE6 standalone 版では不可, IE5.5 は可,,,\r
+                                * @alias X.UA.ieExeComError */                 \r
+                               ( X_UA[ 'ieExeComError' ] = true )\r
+                       //eval( 'var a=1;try{document.execCommand&&document.execCommand("BackgroundImageCache",!1,!0)}catch(e){a=0}!a' )\r
+               );\r
+};\r
index 6be1a47..cac6fa8 100644 (file)
@@ -19,9 +19,9 @@
 var X_Pulgin_FLASH_VERSION =
                !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? parseFloat( X_Object_find( navigator, 'plugins>Shockwave Flash>version' ) || 0 ) :
                !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){
-                           var obj = X_Script_createActiveXObjectSafty( 'ShockwaveFlash.ShockwaveFlash' ),
-                               ver = obj && obj[ 'GetVariable' ]( '$version' ).split( ' ' ).join( '.' );
-                               return parseFloat( ver ) || 0;
+                           var obj = X_Script_createActiveXObjectSafty( 'ShockwaveFlash.ShockwaveFlash' );
+                           
+                               return parseFloat( obj && obj[ 'GetVariable' ]( '$version' ).split( 'WIN ' )[ 1 ] ) || 0;
                        })() :
                        0,
 
@@ -55,6 +55,8 @@ var X_Pulgin_FLASH_VERSION =
                        parseFloat( X_Object_find( navigator, 'plugins>Unity Player>version' ) || 0 ) :
                !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){
                            var obj = X_Script_createActiveXObjectSafty( 'UnityWebPlayer.UnityWebPlayer.1' );
+                           
+                           console.log( obj && obj[ 'GetPluginVersion' ]() );
                            return obj ? parseFloat( obj[ 'GetPluginVersion' ]() ) : 0;
                        })() :
                        0,
index c693cc2..9c388e0 100644 (file)
@@ -219,10 +219,10 @@ var X_NET_TYPE_XHR   = 1,
        X_NET_QUEUE_LIST = [],\r
 \r
        X_XHR,\r
-       X_NET_JSONPWrapper,\r
+       X_JSONP,\r
        X_NET_FormWrapper,\r
        X_NET_ImageWrapper,\r
-       X_NET_GIMRWrapper,\r
+       X_GadgetXHR,\r
 \r
        X_NET_currentWrapper,\r
        X_NET_currentQueue,\r
@@ -314,7 +314,7 @@ function X_NET_shiftQueue(){
                        // force 'gadget', 'flash'\r
                        switch( X_NET_currentData[ 'test' ] ){\r
                                case 'gadget' :\r
-                                       X_NET_currentWrapper = X_NET_GIMRWrapper || X_TEMP.X_Net_GIMR_init();\r
+                                       X_NET_currentWrapper = X_GadgetXHR || X_TEMP.X_GadgetXHR_init();\r
                                        break;\r
                                case 'flash'  :\r
                                        break;\r
@@ -348,7 +348,7 @@ function X_NET_shiftQueue(){
                        };\r
                        break;\r
                case X_NET_TYPE_JSONP :\r
-                       X_NET_currentWrapper = X_NET_JSONPWrapper || X_TEMP.X_NET_JSONP_init();\r
+                       X_NET_currentWrapper = X_JSONP || X_TEMP.X_JSONP_init();\r
                        break;\r
                case X_NET_TYPE_FORM :\r
                        X_NET_currentWrapper = X_NET_FormWrapper  || X_TEMP.X_NET_Form_init();\r
index efff27d..a118ebc 100644 (file)
        // TODO iframe useful or not. TODO check dynamicIframe
        // TODO file: では http: は使えない
 
-X_TEMP.X_NET_JSONP_cb = function( accessKey, jsonString, time, opt_json2FileSize ){
-                       if( accessKey !== X_NET_JSONP_ACCESS_KEY || !X_NET_JSONPWrapper._busy ) return;
+X_TEMP.X_JSONP_cb = function( accessKey, jsonString, time, opt_json2FileSize ){
+                       if( accessKey !== X_JSONP_ACCESS_KEY || !X_JSONP._busy ) return;
                        
-                       X_NET_JSONPWrapper._busy = false;
+                       X_JSONP._busy = false;
                        
-                       X_NET_JSONPWrapper
+                       X_JSONP
                                [ 'asyncDispatch' ]( {
                                        type     : jsonString ? X_EVENT_SUCCESS : X_EVENT_ERROR,
                                        response : X_JSON_parseTrustableString( jsonString )
                                } );
                        
-                       X_Net_JSONP_errorTimerID && X_Timer_remove( X_Net_JSONP_errorTimerID );
+                       X_JSONP_errorTimerID && X_Timer_remove( X_JSONP_errorTimerID );
                        
                        console.log( 'ms : ' + time + ' speed : ' + ( ( jsonString.length + ( opt_json2FileSize || 0 ) ) / time * 1000 ) + ' バイト/秒.' );
        };
 
-var X_NET_JSONP_ACCESS_KEY = Math.random(),
+var X_JSONP_ACCESS_KEY = Math.random(),
        
-       X_Net_JSONP_maxOnloadCount,
+       X_JSONP_maxOnloadCount,
        
-       X_Net_JSONP_onloadCount = 0,
+       X_JSONP_onloadCount = 0,
        
-       X_Net_JSONP_errorTimerID;
+       X_JSONP_errorTimerID;
 
-X_TEMP.X_NET_JSONP_init = function(){
-       X[ 'Net' ][ '__json_cb__' ] = X_TEMP.X_NET_JSONP_cb;
+X_TEMP.X_JSONP_init = function(){
+       X[ 'Net' ][ '__json_cb__' ] = X_TEMP.X_JSONP_cb;
        
-       X_NET_JSONPWrapper = X_Class_override( X_NinjaIframe(), X_TEMP.X_NET_JSONP_params );
+       X_JSONP = X_Class_override( X_NinjaIframe(), X_TEMP.X_JSONP_params );
        
-       delete X_TEMP.X_NET_JSONP_cb;
-       delete X_TEMP.X_NET_JSONP_init;
-       delete X_TEMP.X_NET_JSONP_params;
+       delete X_TEMP.X_JSONP_cb;
+       delete X_TEMP.X_JSONP_init;
+       delete X_TEMP.X_JSONP_params;
        
-       return X_NET_JSONPWrapper;
+       return X_JSONP;
 };
 
-X_TEMP.X_NET_JSONP_params = {
+X_TEMP.X_JSONP_params = {
        
                        _busy         : false,
                        _canceled     : false,
@@ -95,12 +95,12 @@ X_TEMP.X_NET_JSONP_params = {
                                                '<script>',
                                                        'onunload=function(){im.onload=im.onerror=""};',
                                                        'nw=+new Date;',
-                                                       'function ', callback, '(o){if(nw){nw-=+new Date;parent.X.Net.__json_cb__(' + X_NET_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw', window[ 'JSON' ] ? json2FileSize : 0 ,');nw=0}}',
+                                                       'function ', callback, '(o){if(nw){nw-=+new Date;parent.X.Net.__json_cb__(' + X_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw', window[ 'JSON' ] ? json2FileSize : 0 ,');nw=0}}',
                                                '</script>',    
                                                '<script', charset, ' id="jp"></script>',
                                                '<img id="im" src="', url, '" onload="jp.src=im.src" onerror="jp.src=im.src">'
                                        ];
-                                       X_Net_JSONP_maxOnloadCount = 2;
+                                       X_JSONP_maxOnloadCount = 2;
                                } else
                                if( X_UA[ 'IE8' ] ){
                                        html = [
@@ -108,42 +108,42 @@ X_TEMP.X_NET_JSONP_params = {
                                                '<script>',
                                                        'onunload=function(){clearTimeout(id)};',
                                                        'nw=0;', // なぜか必要,,,
-                                                       'function ', callback, '(o){nw-=+new Date;parent.X.Net.__json_cb__(' + X_NET_JSONP_ACCESS_KEY + ',parent.X.JSON.stringify(o),-nw)}',
-                                                       //'function ', callback, '(o){if(nw){nw-=+new Date;postMessage("', X_NET_JSONP_SEND_MSG_KEY,' "+nw+"|"+parent.JSON.stringify(o).replace(/\\\\u([a-fA-F0-9]{4})/g,function(a,b){return String.fromCharCode(parseInt(b,16))}),"*");nw=0}}',                       
+                                                       'function ', callback, '(o){nw-=+new Date;parent.X.Net.__json_cb__(' + X_JSONP_ACCESS_KEY + ',parent.X.JSON.stringify(o),-nw)}',
+                                                       //'function ', callback, '(o){if(nw){nw-=+new Date;postMessage("', X_JSONP_SEND_MSG_KEY,' "+nw+"|"+parent.JSON.stringify(o).replace(/\\\\u([a-fA-F0-9]{4})/g,function(a,b){return String.fromCharCode(parseInt(b,16))}),"*");nw=0}}',                   
                                                        'function tm(){jp.src="', url ,'";nw=+new Date}',
                                                        'id=setTimeout(tm,16);',
                                                '</script>'
                                                
                                                /* 以下のコードは XP ie8 では動くけど、win8 IE11(8モード)で動かない 開発の便宜を取って,setTimeout を挟む
                                                '<script>',
-                                                       'function ', callback, '(o){window.parent.X.Net.__json_cb__(' + X_NET_JSONP_ACCESS_KEY + ',window.parent.JSON.stringify(o))}',
+                                                       'function ', callback, '(o){window.parent.X.Net.__json_cb__(' + X_JSONP_ACCESS_KEY + ',window.parent.JSON.stringify(o))}',
                                                '</script>',
                                                '<script src="', url, '"></script>' */
                                        ];
-                                       X_Net_JSONP_maxOnloadCount = 2;
+                                       X_JSONP_maxOnloadCount = 2;
                                } else
                                if( X_UA[ 'IE9' ] ){
                                        html = [
                                                '<script', charset, ' id="jp"></script>',
                                                '<script>',
                                                        'onunload=function(){clearTimeout(id)};',
-                                                       'function ', callback, '(o){nw-=+new Date;parent.X.Net.__json_cb__(' + X_NET_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw)}',
+                                                       'function ', callback, '(o){nw-=+new Date;parent.X.Net.__json_cb__(' + X_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw)}',
                                                        'function tm(){jp.src="', url ,'";nw=+new Date}',
                                                        'id=setTimeout(tm,16);',
                                                '</script>'
                                        ];
-                                       X_Net_JSONP_maxOnloadCount = 2;
+                                       X_JSONP_maxOnloadCount = 2;
                                } else
                                if( window[ 'JSON' ] ){
                                        html = [        
                                                '<script>',
                                                        'nw=+new Date;',
-                                                       'function ', callback, '(o){if(nw){nw-=+new Date;parent.X.Net.__json_cb__(' + X_NET_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw);nw=0}}',
-                                                       //'function ', callback, '(o){if(nw){nw-=+new Date;parent.postMessage("', X_NET_JSONP_SEND_MSG_KEY,' "+nw+"|"+JSON.stringify(o),"', location.origin, '");nw=0}}',
+                                                       'function ', callback, '(o){if(nw){nw-=+new Date;parent.X.Net.__json_cb__(' + X_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw);nw=0}}',
+                                                       //'function ', callback, '(o){if(nw){nw-=+new Date;parent.postMessage("', X_JSONP_SEND_MSG_KEY,' "+nw+"|"+JSON.stringify(o),"', location.origin, '");nw=0}}',
                                                '</script>',
                                                '<script', charset, ' src="', url, '"></script>'
                                        ];
-                                       X_Net_JSONP_maxOnloadCount = 1;
+                                       X_JSONP_maxOnloadCount = 1;
                                } else
                                if( X_UA[ 'IE4' ] || X_UA[ 'MacIE' ] ){
                                        html = [
@@ -151,13 +151,13 @@ X_TEMP.X_NET_JSONP_params = {
                                                '<script', charset, ' id="jp"></script>',
                                                '<script>',
                                                        'onunload=function(){clearTimeout(id)};',
-                                                       'function ', callback, '(o){nw-=new Date;parent.X.Net.__json_cb__(' + X_NET_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw-16,', json2FileSize, ')}',
+                                                       'function ', callback, '(o){nw-=new Date;parent.X.Net.__json_cb__(' + X_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw-16,', json2FileSize, ')}',
                                                        'function t1(){document.all.jn.src="', json2Path ,'";id=setTimeout("t2()",16);nw=+new Date}',
                                                        'id=setTimeout("t1()",16);',
                                                        'function t2(){if(window.JSON){document.all.jp.src="', url ,'"}else{id=setTimeout("t2()",16)}}',
                                                '</script>'
                                        ];
-                                       X_Net_JSONP_maxOnloadCount = 3;
+                                       X_JSONP_maxOnloadCount = 3;
                                } else
                                if( X_UA[ 'IE' ] < 8 ){ // ie5-7
                                        html = [
@@ -165,58 +165,58 @@ X_TEMP.X_NET_JSONP_params = {
                                                '<script', charset, ' id="jp"></script>',
                                                '<script>',
                                                        'onunload=function(){clearTimeout(id)};',
-                                                       'function ', callback, '(o){nw-=new Date;parent.X.Net.__json_cb__(' + X_NET_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw-16,', json2FileSize, ')}',
+                                                       'function ', callback, '(o){nw-=new Date;parent.X.Net.__json_cb__(' + X_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw-16,', json2FileSize, ')}',
                                                        'function t1(){jn.src="', json2Path ,'";id=setTimeout(t2,16);nw=+new Date}',
                                                        'id=setTimeout(t1,16);',
                                                        'function t2(){if(window.JSON){jp.src="', url ,'"}else{id=setTimeout(t2,16)}}',
                                                '</script>'
                                        ];
-                                       X_Net_JSONP_maxOnloadCount = 3;
+                                       X_JSONP_maxOnloadCount = 3;
                                } else {
                                        html = [
                                                '<script>',
-                                                       'function ', callback, '(o){if(nw){nw-=new Date;parent.X.Net.__json_cb__(' + X_NET_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw,', json2FileSize, ');nw=0}}',
+                                                       'function ', callback, '(o){if(nw){nw-=new Date;parent.X.Net.__json_cb__(' + X_JSONP_ACCESS_KEY + ',JSON.stringify(o),-nw,', json2FileSize, ');nw=0}}',
                                                        'nw=+new Date;',
                                                '</script>',
                                                '<script src="', json2Path, '"></script>',
                                                '<script', charset, ' src="', url, '"></script>'
                                        ];
-                                       X_Net_JSONP_maxOnloadCount = 2;
+                                       X_JSONP_maxOnloadCount = 2;
                                };
                                
-                               X_NET_JSONPWrapper
+                               X_JSONP
                                        [ 'refresh' ]( html.join( '' ) )
-                                       [ 'listen' ]( [ 'ninjaload', 'ninjaerror' ], X_NET_JSONP_iframeListener );
+                                       [ 'listen' ]( [ 'ninjaload', 'ninjaerror' ], X_JSONP_iframeListener );
                                                        
-                               X_NET_JSONPWrapper._busy = true;
+                               X_JSONP._busy = true;
                        },
                        
                        cancel : function(){
-                               X_NET_JSONPWrapper.reset();
-                               X_NET_JSONPWrapper._canceled = true;
+                               X_JSONP.reset();
+                               X_JSONP._canceled = true;
                        },
                        
                        reset : function(){
-                               X_NET_JSONPWrapper._busy = X_NET_JSONPWrapper._canceled = false;
-                               X_NET_JSONPWrapper[ 'unlisten' ]( [ 'ninjaload', 'ninjaerror' ], X_NET_JSONP_iframeListener );
-                               X_NET_JSONPWrapper[ 'refresh' ]( '' );
-                               X_Net_JSONP_errorTimerID && X_Timer_remove( X_Net_JSONP_errorTimerID );
-                               X_Net_JSONP_errorTimerID = X_Net_JSONP_onloadCount = 0;
+                               X_JSONP._busy = X_JSONP._canceled = false;
+                               X_JSONP[ 'unlisten' ]( [ 'ninjaload', 'ninjaerror' ], X_JSONP_iframeListener );
+                               X_JSONP[ 'refresh' ]( '' );
+                               X_JSONP_errorTimerID && X_Timer_remove( X_JSONP_errorTimerID );
+                               X_JSONP_errorTimerID = X_JSONP_onloadCount = 0;
                        }
                };
 
-function X_NET_JSONP_iframeListener( e ){
+function X_JSONP_iframeListener( e ){
        switch( e.type ){
                case 'ninjaload' :
-                       console.log( 'iframe onload, but ' + X_Net_JSONP_onloadCount + ' < ' + X_Net_JSONP_maxOnloadCount );
-                       if( ++X_Net_JSONP_onloadCount < X_Net_JSONP_maxOnloadCount ) return;
+                       console.log( 'iframe onload, but ' + X_JSONP_onloadCount + ' < ' + X_JSONP_maxOnloadCount );
+                       if( ++X_JSONP_onloadCount < X_JSONP_maxOnloadCount ) return;
                        
                        // TODO callback が無ければ error -> timeout を観る?
-                       X_Net_JSONP_errorTimerID = X_NET_JSONPWrapper[ 'asyncDispatch' ]( 1000, X_EVENT_ERROR );
+                       X_JSONP_errorTimerID = X_JSONP[ 'asyncDispatch' ]( 1000, X_EVENT_ERROR );
                        break;
                case 'ninjaerror' :
                        console.log( 'iframe onerror' );
-                       X_NET_JSONPWrapper[ 'asyncDispatch' ]( X_EVENT_ERROR );
+                       X_JSONP[ 'asyncDispatch' ]( X_EVENT_ERROR );
                        break;
        };
        return X_CALLBACK_UN_LISTEN;
index 9b89fdc..ee43ca2 100644 (file)
  * \r
  */\r
 \r
-var X_NET_GIMR_canUse         = 5.5 <= X_UA[ 'IE' ] || !X_UA[ 'IE' ],\r
+var X_GadgetXHR_canUse         = 5.5 <= X_UA[ 'IE' ] || !X_UA[ 'IE' ],\r
        \r
-       X_NET_GIMR_iframeName     = 'gadgetProxy_' + ( Math.random() * 100000 | 0 ),\r
+       X_GadgetXHR_iframeName     = 'gadgetProxy_' + ( Math.random() * 100000 | 0 ),\r
        \r
-       X_NET_GIMR_GADGET_XML_URL = 'http://googledrive.com/host/0B4Y86MXyTfuoVUkwTE54T3V1V1U',\r
+       X_GadgetXHR_GADGET_XML_URL = 'http://googledrive.com/host/0B4Y86MXyTfuoVUkwTE54T3V1V1U',\r
        \r
        // https://kldleov8fp2dl82hphfmor8riij82tof-a-sites-opensocial.googleusercontent.com/gadgets/ifr\r
-       X_NET_GIMR_GADGET_URL     = 'http://www.ig.gmodules.com/gadgets/ifr?url=' + encodeURIComponent( X_NET_GIMR_GADGET_XML_URL ) + '&nocache=1',\r
+       X_GadgetXHR_GADGET_URL     = 'http://www.ig.gmodules.com/gadgets/ifr?url=' + encodeURIComponent( X_GadgetXHR_GADGET_XML_URL ) + '&nocache=1',\r
        \r
-       X_NET_GIMR_IMAGE_URL      = 'img/opacity0.gif',\r
+       X_GadgetXHR_IMAGE_URL      = 'img/opacity0.gif',\r
        \r
        // https://code.google.com/p/xssinterface/source/browse/trunk/js/xssinterface.js\r
-       X_NET_GIMR_maxQueryLength = X_UA[ 'IE' ] ? 2000 : 6000,\r
+       X_GadgetXHR_maxQueryLength = X_UA[ 'IE' ] ? 2000 : 6000,\r
        \r
-       X_NET_GIMR_requestBatches,\r
+       X_GadgetXHR_requestBatches,\r
        \r
-       X_NET_GIMR_requestOriginal,\r
+       X_GadgetXHR_requestOriginal,\r
        \r
-       X_NET_GIMR_timerID,\r
+       X_GadgetXHR_timerID,\r
        \r
-       X_NET_GIMR_phase = 0,\r
+       X_GadgetXHR_phase = 0,\r
        \r
-       X_NET_GIMR_lastHashString,\r
+       X_GadgetXHR_lastHashString,\r
        \r
-       X_NET_GIMR_isReceiveBatches, X_NET_GIMR_receivedString = '';\r
+       X_GadgetXHR_isReceiveBatches, X_GadgetXHR_receivedString = '';\r
 \r
 \r
-function X_NET_GIMR_detectImageOverIframe(){\r
-       var raw = this[ '_rawObject' ],\r
-               iwin, ret, i, n;\r
+function X_GadgetXHR_detectImageOverIframe(){\r
+       var raw = X_GadgetXHR[ '_rawObject' ],\r
+               iwin, frames, i, ret, n;\r
        \r
        if( raw ){\r
-               iwin = raw.contentWindow || ( raw.contentDocument && raw.contentDocument.parentWindow ) || window.frames[ X_NET_GIMR_iframeName ];\r
+               iwin = raw.contentWindow || ( raw.contentDocument && raw.contentDocument.parentWindow ) || window.frames[ X_GadgetXHR_iframeName ];\r
                \r
-               if( iwin && iwin.frames && ( i = iwin.frames.length ) ){\r
+               if( iwin && ( frames = iwin.frames ) && ( i = frames.length ) ){\r
                        for( ; i; ){\r
-                               if( ret = X_Script_try( X_Object_find, [ iwin.frames[ --i ], 'location.hash' ] ) ) break;\r
+                               if( ret = X_Script_try( X_Object_find, [ frames[ --i ], 'location>hash' ] ) ) break;\r
                        };\r
-                       if( ret && ret !== X_NET_GIMR_lastHashString ){\r
-                               X_NET_GIMR_lastHashString = ret;\r
+                       if( ret && ret !== X_GadgetXHR_lastHashString ){\r
+                               X_GadgetXHR_lastHashString = ret;\r
                                //console.log( ret.length );\r
                                //console.log( '' + ret );\r
                                \r
-                               switch( X_NET_GIMR_phase ){\r
+                               switch( X_GadgetXHR_phase ){\r
                                        case 0 : // makeRequest\r
-                                               iwin.location.href = X_NET_GIMR_GADGET_URL + '#' + X_NET_GIMR_requestBatches.shift();\r
-                                               if( X_NET_GIMR_requestBatches.length ) return; //TODO boost\r
+                                               iwin.location.href = X_GadgetXHR_GADGET_URL + '#' + X_GadgetXHR_requestBatches.shift();\r
+                                               if( X_GadgetXHR_requestBatches.length ) return; //TODO boost\r
                                                break;\r
                                                \r
                                        case 1 : // after makeRequest > :ok 待ち\r
-                                               iwin.location.href = X_NET_GIMR_GADGET_URL + '#_waiting_';\r
+                                               iwin.location.href = X_GadgetXHR_GADGET_URL + '#_waiting_';\r
                                                break;\r
 \r
                                        case 2 : // _waiting_ 通信結果待ち\r
@@ -75,59 +75,59 @@ function X_NET_GIMR_detectImageOverIframe(){
                                                ret = ret.substr( 1 );\r
                                                n   = parseInt( ret );\r
                                                \r
-                                               if( X_NET_GIMR_isReceiveBatches ){\r
-                                                       X_NET_GIMR_receivedString += X_Net_GIMR_decodeLocationHash( ret );                                              \r
-                                                       if( --X_NET_GIMR_isReceiveBatches ){\r
-                                                               iwin.location.href = X_NET_GIMR_GADGET_URL + '#_recived_' + X_NET_GIMR_isReceiveBatches;\r
+                                               if( X_GadgetXHR_isReceiveBatches ){\r
+                                                       X_GadgetXHR_receivedString += X_GadgetXHR_decodeLocationHash( ret );                                            \r
+                                                       if( --X_GadgetXHR_isReceiveBatches ){\r
+                                                               iwin.location.href = X_GadgetXHR_GADGET_URL + '#_recived_' + X_GadgetXHR_isReceiveBatches;\r
                                                                return;\r
                                                        };\r
                                                } else\r
                                                if( 1 < n ){\r
                                                        ret = ret.substr( ( n + ':' ).length );\r
-                                                       X_NET_GIMR_receivedString   = X_Net_GIMR_decodeLocationHash( ret );\r
-                                                       X_NET_GIMR_isReceiveBatches = --n;\r
-                                                       iwin.location.href = X_NET_GIMR_GADGET_URL + '#_recived_' + X_NET_GIMR_isReceiveBatches;\r
+                                                       X_GadgetXHR_receivedString   = X_GadgetXHR_decodeLocationHash( ret );\r
+                                                       X_GadgetXHR_isReceiveBatches = --n;\r
+                                                       iwin.location.href = X_GadgetXHR_GADGET_URL + '#_recived_' + X_GadgetXHR_isReceiveBatches;\r
                                                        // speedup\r
-                                                       X_NET_GIMR_timerID = X_Timer_add( 16, 0, this, X_NET_GIMR_detectImageOverIframe );\r
+                                                       X_GadgetXHR_timerID = X_Timer_add( 16, 0, X_GadgetXHR_detectImageOverIframe );\r
                                                        return X_CALLBACK_UN_LISTEN;\r
                                                } else {\r
-                                                       X_NET_GIMR_receivedString = X_Net_GIMR_decodeLocationHash( ret );\r
+                                                       X_GadgetXHR_receivedString = X_GadgetXHR_decodeLocationHash( ret );\r
                                                };\r
 \r
-                                               X_NET_GIMRWrapper[ 'asyncDispatch' ]( X_JSON_parseTrustableString( X_NET_GIMR_receivedString ) );\r
-                                               X_NET_GIMR_receivedString = '';\r
+                                               X_GadgetXHR[ 'asyncDispatch' ]( X_JSON_parseTrustableString( X_GadgetXHR_receivedString ) );\r
+                                               X_GadgetXHR_receivedString = '';\r
                                                //console.dir( e );\r
 \r
-                                               X_NET_GIMRWrapper._busy = false;\r
-                                               X_NET_GIMR_timerID = X_NET_GIMR_phase = 0;\r
+                                               X_GadgetXHR._busy = false;\r
+                                               X_GadgetXHR_timerID = X_GadgetXHR_phase = 0;\r
 \r
-                                               X_NET_GIMR_lastHashString = '';\r
-                                               iwin.location.href = X_NET_GIMR_GADGET_URL + '#_recived_';\r
+                                               X_GadgetXHR_lastHashString = '';\r
+                                               iwin.location.href = X_GadgetXHR_GADGET_URL + '#_recived_';\r
                                                \r
                                                return X_CALLBACK_UN_LISTEN;\r
                                };\r
-                               ++X_NET_GIMR_phase;\r
+                               ++X_GadgetXHR_phase;\r
                        };\r
                };\r
        };\r
 };\r
 \r
 // http://outcloud.blogspot.jp/2015/06/gecko-location-hash.html\r
-function X_Net_GIMR_decodeLocationHash( str ){\r
+function X_GadgetXHR_decodeLocationHash( str ){\r
        return X_UA[ 'Gecko' ] ? unescape( str ) : decodeURIComponent( str );\r
 };\r
 \r
-X_TEMP.X_Net_GIMR_init = function(){\r
-       X_NET_GIMRWrapper = X_Class_override(\r
+X_TEMP.X_GadgetXHR_init = function(){\r
+       X_GadgetXHR = X_Class_override(\r
                        X_Node_systemNode\r
                                .create( 'iframe', {\r
                                        className         : 'hidden-iframe',\r
-                                       name              : X_NET_GIMR_iframeName,\r
-                                       id                : X_NET_GIMR_iframeName,\r
-                                       src               : X_NET_GIMR_GADGET_URL + '#' + encodeURIComponent(\r
+                                       name              : X_GadgetXHR_iframeName,\r
+                                       id                : X_GadgetXHR_iframeName,\r
+                                       src               : X_GadgetXHR_GADGET_URL + '#' + encodeURIComponent(\r
                                                        X_JSON_stringify( {\r
-                                                               'img'  : X_URL_toAbsolutePath( X_NET_GIMR_IMAGE_URL ),\r
-                                                               'len'  : X_NET_GIMR_maxQueryLength,\r
+                                                               'img'  : X_URL_toAbsolutePath( X_GadgetXHR_IMAGE_URL ),\r
+                                                               'len'  : X_GadgetXHR_maxQueryLength,\r
                                                                'itv'  : 333,\r
                                                                'gck'  : X_UA[ 'Gecko' ] ? 1 : 0,\r
                                                                'err'  : X_EVENT_ERROR,\r
@@ -138,18 +138,18 @@ X_TEMP.X_Net_GIMR_init = function(){
                                        allowtransparency : 'no',                                       \r
                                        frameborder       : 0,\r
                                        tabindex          : -1\r
-                                       }),\r
-                       X_TEMP.X_Net_GIMR_props );\r
+                                       } ),\r
+                       X_TEMP.X_GadgetXHR_props );\r
        \r
-       delete X_TEMP.X_Net_GIMR_init;\r
-       delete X_TEMP.X_Net_GIMR_props; \r
+       delete X_TEMP.X_GadgetXHR_init;\r
+       delete X_TEMP.X_GadgetXHR_props;        \r
        \r
-       X_NET_GIMR_requestBatches = [];\r
+       X_GadgetXHR_requestBatches = [];\r
        \r
-       return X_NET_GIMRWrapper;\r
+       return X_GadgetXHR;\r
 };\r
 \r
-X_TEMP.X_Net_GIMR_props = {\r
+X_TEMP.X_GadgetXHR_props = {\r
 \r
                _busy         : false,\r
                _canceled     : false,\r
@@ -160,7 +160,7 @@ X_TEMP.X_Net_GIMR_props = {
                                k, max, sendStr, l, str;\r
                        //createURL\r
 \r
-                       X_NET_GIMR_requestOriginal = obj;\r
+                       X_GadgetXHR_requestOriginal = obj;\r
                        \r
                        for( k in obj ){\r
                                switch( k ){\r
@@ -175,7 +175,7 @@ X_TEMP.X_Net_GIMR_props = {
                                };\r
                        };\r
                        \r
-                       max = X_NET_GIMR_maxQueryLength - X_NET_GIMR_GADGET_URL.length - 5;\r
+                       max = X_GadgetXHR_maxQueryLength - X_GadgetXHR_GADGET_URL.length - 5;\r
                        \r
                        sendStr = X_JSON_stringify( req );\r
                        \r
@@ -187,29 +187,29 @@ X_TEMP.X_Net_GIMR_props = {
                                        str = encodeURIComponent( sendStr.substr( 0, l ) );\r
                                        //console.log( l );\r
                                };\r
-                               X_NET_GIMR_requestBatches.push( str );\r
+                               X_GadgetXHR_requestBatches.push( str );\r
                                sendStr = sendStr.substr( l );\r
                                str = '';\r
                        };\r
                        \r
                        sendStr = '';\r
                        \r
-                       if( 1 < X_NET_GIMR_requestBatches.length ){\r
-                               X_NET_GIMR_requestBatches[ 0 ] = X_NET_GIMR_requestBatches.length + ':' + X_NET_GIMR_requestBatches[ 0 ];       \r
+                       if( 1 < X_GadgetXHR_requestBatches.length ){\r
+                               X_GadgetXHR_requestBatches[ 0 ] = X_GadgetXHR_requestBatches.length + ':' + X_GadgetXHR_requestBatches[ 0 ];    \r
                        };\r
                        \r
-                       X_NET_GIMR_timerID = X_Timer_add( 333, 0, this, X_NET_GIMR_detectImageOverIframe );\r
+                       X_GadgetXHR_timerID = X_Timer_add( 333, 0, X_GadgetXHR_detectImageOverIframe );\r
                        \r
-                       this._busy = true;\r
+                       X_GadgetXHR._busy = true;\r
                },\r
                \r
                cancel : function(){\r
-                       this._canceled = true;\r
+                       X_GadgetXHR._canceled = true;\r
                },\r
                \r
                reset : function(){\r
-                       this._busy = this._canceled = false;\r
-                       this._onloadCount = 0;\r
+                       X_GadgetXHR._busy = X_GadgetXHR._canceled = false;\r
+                       X_GadgetXHR._onloadCount = 0;\r
                }\r
        };\r
 \r
index 3a3f0b0..aa90277 100644 (file)
@@ -53,7 +53,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                        _lastState      : '',\r
                        _interval       : 0, // setInterval timer id\r
                        \r
-                       'Constructor' : function( target, source, option ){\r
+                       'Constructor' : function( disatcher, source, option ){\r
                                !X_SLAudio_uid && X_TEMP.slaudioInit();\r
                                \r
                                /*\r
@@ -61,7 +61,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                 * http://www.atmarkit.co.jp/fdotnet/dotnettips/902slobjcallfromjs/slobjcallfromjs.html\r
                                 * このページのサンプルは sl5+firefox32 環境で動いている。xaml を js から利用する形ではなく、.xap を sl4 以下で作るのがよさそう.\r
                                 */\r
-                               this.target      = target || this;\r
+                               this.disatcher   = disatcher || this;\r
                                this._source     = source;\r
                                // X.Audio._slOnload_ は不可\r
                        this._onload     = 'XAudioSilverlightOnLoad' + ( ++X_SLAudio_uid );\r
@@ -122,7 +122,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                                if( this.playing ){\r
                                                        //X_Timer_once( 16, this, this.actualPlay );\r
                                                } else {\r
-                                                       this.target[ 'dispatch' ]( X_EVENT_ERROR ); // open failed\r
+                                                       this.disatcher[ 'dispatch' ]( X_EVENT_ERROR ); // open failed\r
                                                        this[ 'kill' ]();                                                       \r
                                                };\r
                                                break;\r
@@ -130,7 +130,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                        case 'MediaOpened' :\r
                                                // http://msdn.microsoft.com/ja-jp/library/bb979710(VS.95).aspx\r
                                                this.duration = this[ '_rawObject' ][ 'NaturalDuration' ][ 'Seconds' ] * 1000;\r
-                               this.target[ 'asyncDispatch' ]( X_EVENT_READY );\r
+                               this.disatcher[ 'asyncDispatch' ]( X_EVENT_READY );\r
                                \r
                                this.autoplay && X_Timer_once( 16, this, this.actualPlay );\r
                                                break;\r
@@ -159,10 +159,10 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                                        case 'Opening' :\r
                                                                switch( this._lastUserAction ){\r
                                                                        case 'play' :\r
-                                                                               this.target[ 'dispatch' ]( X_EVENT_MEDIA_WAITING );\r
+                                                                               this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_WAITING );\r
                                                                                break;\r
                                                                        case 'seek' :\r
-                                                                               this.target[ 'dispatch' ]( X_EVENT_MEDIA_SEEKING );\r
+                                                                               this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_SEEKING );\r
                                                                                break;\r
                                                                        case 'pause' :\r
                                                                                break;\r
@@ -179,7 +179,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                                                this.playing = false;\r
                                                                this._ended  = true;\r
                                                                this._paused = false;\r
-                                                               this.target[ 'dispatch' ]( X_EVENT_ERROR );\r
+                                                               this.disatcher[ 'dispatch' ]( X_EVENT_ERROR );\r
                                                                this[ 'kill' ]();\r
                                                                break;\r
 \r
@@ -195,9 +195,9 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                                                        case 'play': // play() -> file end -> event('ended')\r
                                                                        case 'seek':\r
                                                                                //this.seekTime = 0;\r
-                                                                               this._ended   = true;\r
-                                                                               this._paused  = false;\r
-                                                                               //this.target[ 'dispatch' ]( X_EVENT_MEDIA_ENDED );\r
+                                                                               this._ended  = true;\r
+                                                                               this._paused = false;\r
+                                                                               //this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_ENDED );\r
                                                                                //this.setCurrentTime( this.startTime );\r
                                                                                break;\r
                                                                        case 'pause':\r
@@ -216,7 +216,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                                                //this.playing = true;\r
                                                                this._ended  = false;\r
                                                                this._paused = false;\r
-                                                               this.target[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING );\r
+                                                               this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING );\r
                                                                break;\r
 \r
                                                        // stop()\r
@@ -232,7 +232,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                                break;\r
 \r
                                        case X_EVENT_KILL_INSTANCE :\r
-                                               this.playing && this.target[ 'dispatch' ]( X_EVENT_MEDIA_ENDED );\r
+                                               this.playing && this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_ENDED );\r
                                                this.playing && this.actualPause();\r
                                        \r
                                                if( this._onload ){\r
@@ -299,7 +299,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                                delete this._interval;\r
                                                return X_CALLBACK_UN_LISTEN;\r
                                        };\r
-                                       this.target[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING );\r
+                                       this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING );\r
                                },\r
                                \r
                                _onEnded : function(){\r
@@ -317,7 +317,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                        console.log( '    > ' + time );\r
                                        this._ended && this[ '_rawObject' ].play();\r
                                        this._ended = false;\r
-                                       this.target[ 'dispatch' ]( X_EVENT_MEDIA_WAITING );\r
+                                       this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_WAITING );\r
                                        this._timerID = X_Timer_once( X_Audio_getEndTime( this ) - time, this, this._onEnded );\r
                                        return;\r
                                };\r
@@ -333,16 +333,16 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                \r
                                if( this.autoLoop ){\r
                                        console.log( '========= loop?' );\r
-                                       if( !( this.target[ 'dispatch' ]( X_EVENT_MEDIA_BEFORE_LOOP ) & X_CALLBACK_PREVENT_DEFAULT ) ){\r
+                                       if( !( this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_BEFORE_LOOP ) & X_CALLBACK_PREVENT_DEFAULT ) ){\r
                                                console.log( '========== loopした' );\r
                                                this.looped = true;\r
-                                               this.target[ 'dispatch' ]( X_EVENT_MEDIA_LOOPED );\r
+                                               this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_LOOPED );\r
                                                this.actualPlay();\r
                                        };\r
                                } else {\r
                                        console.log( '========= pause' );\r
                                        this.actualPause();\r
-                                       this.target[ 'dispatch' ]( X_EVENT_MEDIA_ENDED );\r
+                                       this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_ENDED );\r
                                };\r
                            };\r
                                },\r
@@ -358,7 +358,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){
                                this._ended   = false;\r
                                \r
                                this[ '_rawObject' ].pause();\r
-                               //this.target[ 'dispatch' ]( 'pause' );\r
+                               //this.disatcher[ 'dispatch' ]( 'pause' );\r
                        },\r
 \r
                        getActualCurrentTime : function(){\r