OSDN Git Service

Version 0.6.207, Modification of variable scope leaks.
[pettanr/clientJs.git] / 0.6.x / js / 06_net / 03_XNetForm.js
index 66a1bac..cdbcb4f 100644 (file)
@@ -1,7 +1,7 @@
 //{+netform"<form>によるGETとPOST"(動的に生成したフォームによるGETとPOST。)[+net,+ninjaiframe]\r
 \r
 var X_FormSender_errorTimerID,\r
-       X_FormSender_isLeave,\r
+       X_FormSender_isLeave, X_FormSender_isSameDomain,\r
        X_FormSender_onloadCount = 0;\r
 \r
 X_TEMP.X_FormSender_init = function(){\r
@@ -30,6 +30,7 @@ X_TEMP.X_FormSender_params = {
                        load : function( option ){\r
                                //createURL\r
                                var params  = option[ 'params'  ] || {},\r
+                                       url     = option[ 'url' ],\r
                                        target  = option[ 'target'  ],\r
                                        timeout = option[ 'timeout' ],\r
                                        // http://search.web-sun.com/zatu/charset.html\r
@@ -40,12 +41,12 @@ X_TEMP.X_FormSender_params = {
                                html   = [\r
                                        // <meta http-equiv="Content-Type" content="text/html; charset=euc-jp">\r
                                        '<form method="', X_FormSender_escapeQuote( option[ 'method' ] || 'GET' ), \r
-                                               '" action="', X_FormSender_escapeQuote( option[ 'url' ] || '' ), \r
+                                               '" action="', X_FormSender_escapeQuote( url || '' ), \r
                                                '" target="', X_FormSender_escapeQuote( target ),\r
                                                '">' ];\r
                                \r
-                               X_FormSender_isLeave = target === '_top' || target === '_parent';\r
-\r
+                               X_FormSender_isLeave      = target === '_top' || target === '_parent';\r
+                               X_FormSender_isSameDomain = X_URL_isSameDomain( url );\r
                                \r
                                for( k in params ){\r
                                        // TODO 使用すべきでない name\r
@@ -91,9 +92,12 @@ function X_FormSender_iframeListener( e ){
                        };\r
                        \r
                        if( ++X_FormSender_onloadCount === 1 ){\r
-                               idoc = this[ '_rawObject' ].contentDocument || this._iwin.document,\r
-\r
-                               X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, response : idoc && idoc.body ? idoc.body.innerHTML : '' } );\r
+                               if( X_FormSender_isSameDomain ){\r
+                                       idoc = this[ '_rawObject' ].contentDocument || this._iwin.document;\r
+                                       X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, response : idoc && idoc.body ? idoc.body.innerHTML : '' } );                                 \r
+                               } else {\r
+                                       X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS } );\r
+                               };\r
                        };\r
                        break;\r
                case 'ninjaerror' :\r