Struppi: Wie das Ergebnis von Request zurückgeben? (Frage 2.0) ;-)

Beitrag lesen

Jetzt sehe ich. Das was du willst ist ziemlich ungünstig,

Warum ist das ungünstig?

eine callback Funktion die sich selbst aufruft ist so nicht üblich

Warum? Wie sollte ich es sonst lösen? Das ist IMHO die einzige Möglichkeit, die ich hier habe.

Nein, du irrst.
Hier mal ein rudimentäres HTTPRequest Objekt, das unterschiedliche calback Funktionen aufrufen kann.

  
function myReq(url, callback) {  
 var http_request = false;  
  
 if (window.XMLHttpRequest)  http_request = new XMLHttpRequest();  
 else if (window.ActiveXObject) http_request = new ActiveXObject("Microsoft.XMLHTTP");  
  
 http_request.onreadystatechange = function() {  
  if (http_request.readyState == 4)  {  
   if(typeof callback == 'function') callback( http_request );  
   return;  
  }  
 };  
 http_request.open('GET', url, true);  
 http_request.send(null);  
}

Das kannst du jetzt beliebig aufrufen:

function text( req) {
alert(req.responseText);
}
function state( req) {
alert(req.reeadyState);
}

myReq(' ... url ', text);
oder
myReq(' ... url ', state);
oder
myReq(' ... url ', function(r) {alert(r);});
usw.

Struppi.