0

Ajax Request (基本機能) に問題があります

ここにajax関数があります

function ajax(){
 var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]
 if (window.ActiveXObject){ 
  for (var i=0; i<activexmodes.length; i++){
   try{
    return new ActiveXObject(activexmodes[i])
   }
   catch(e){
   }
  }
 }
 else if (window.XMLHttpRequest)
  return new XMLHttpRequest()
 else
  return false
}

ここに別の機能があります

 _2xm.load = function (p, type)
    {
      p = p.replace("frame_", "");
      loading(type);
      var req=new ajax();
      var __page =encodeURIComponent(p);
      req.open("GET", "page.php?page="+__page, true);
      req.send(null);
      req.onreadystatechange=function(){
        if (req.readyState==4)
        {
          if (req.status==200 || window.location.href.indexOf("http")==-1)
          {
           loading(2);
           return req.responseText;
          }
          else
          {
            loading(2);
            return "An error was occured.... ";
          }
        }
      }
    }

_2xm.load()関数を使用するコードの一部を次に示します。

_2xm.loadData = [_2xm.load(pg, 0), _2xm.now(), _2xm.interval * 60];

しかし、結果は常にUndefined、なぜですか?

4

1 に答える 1

0

から値を返したことがない_2xm.loadため、関数は暗黙的に に評価されundefinedます。

にバインドされた無名関数コールバックからのみ値を返します。このコールバックreq.onreadystatechangeは、関数呼び出しが終了してからかなり後の段階で非同期的に起動します_2xm.load

おそらく、同期リクエストを検討する必要があります。

于 2011-07-21T13:24:09.513 に答える