Ajax und JavaScript - Kann keine Parameter in einer Funktion
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
anonymen funktion
aufgerufenen datei
auswerten
break
code
erzeugen
folgende zeilen
funktion
inhalt
instanz
kleinen code
opus
parameter
safari
senden
show
status
url
zweite funktion
zweiten funktion
-
Hi
ich habe einen kleinen Code von einer Webseite über Ajax geholt und will ihn nun in meine einbauen. Der Code lautet wie folgt:
var request = false; // Request senden function setRequest(docurl, divid) { // Request erzeugen if (window.XMLHttpRequest) { request = new XMLHttpRequest(); // Mozilla, Safari, Opera } else if (window.ActiveXObject) { try { request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5 } catch (e) { try { request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6 } catch (e) {} } } // überprüfen, ob Request erzeugt wurde if (!request) { alert("Kann keine XMLHTTP-Instanz erzeugen"); return false; } else { var url = docurl; // Request öffnen request.open('post', url, true); // Request senden request.send(null); // Request auswerten request.onreadystatechange = interpretRequest; } } // Request auswerten function interpretRequest() { switch (request.readyState) { // wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen case 4: if (request.status != 200) { alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status); } else { var content = request.responseText; // den Inhalt des Requests in das <div> schreiben document.getElementById('filelist_leftbar_content').innerHTML = content; } break; default: break; } }
Er funktioniert problemlos, jetzt soll aber die Funktion des Öfteren verwendet werden, somit soll die ID des Divs, in den der Inhalt der aufgerufenen Datei eingefügt werden soll, frei definierbar sein. Daher ist bei der ersten Funktion einer der Parameter "divid".
Die erste verwendet allerdings auch die zweite Funktion, somit muss ich jetzt irgendwie das "divid" an die zweite Funktion übergeben.
Wenn ich jetzt aber versuche der zweiten Funktion den Parameter divid zu geben, funktioniert das Script nicht mehr, weiß jemand woran das liegt?
Folgende Zeilen wurden geändert:
29: request.onreadystatechange = interpretRequest[COLOR="#FF0000"]('divid')[/COLOR]; 34: function interpretRequest([COLOR="#FF0000"]divid[/COLOR]) { 43: document.getElementById([COLOR="#FF0000"]divid[/COLOR]).innerHTML = content;
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
request.onreadystatechange = interpretRequest
=öffne die function interpretrequest wenn sich der status der anfrage ändert (=eine Antwort kommt)
request.onreadystatechange = interpretReques(anyvar)
=übergebe das Ergebniss der funktion interpretRequest an request.onreadystatechange
entweder arbeitest du mit einer globalen var...
...oder schau mal hier:
Mini AJAX
Beitrag zuletzt geändert: 3.9.2011 5:35:13 von simuliertes -
Ich habs mal mit globalen Variablen probiert, aber nicht richtig hingekriegt. Egal, ich hab die zweite Funktion zu einer anonymen Funktion innerhalb der Ersten umdefiniert, jetzt funktioniert es.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage