<script type="text/javascript">
function MACH() {
AJAX = new XMLHttpRequest();
AJAX.open('GET','test.txt',true);
AJAX.onreadystatechange = function () {
if (AJAX.readyState == 4) {
doChallengeResponse(AJAX.responseText);
}
}
AJAX.send(null);
}function doChallengeResponse() {
document.form1.ich.value = MACH();
}
</script>
Das dürfte sich tot rennen.
Jedes mal wenn Mensch B fertig ist, schickt ihn Mensch A wieder los. Desweiteren übergibst du zwar den Antworttext, benutzt ihn aber in doChallengeResponse garnicht, statt dessen startest du wieder ein neues Ajax-Request, wo wieder, wenn es fertig ist, doChallengeResponse aufruft, welches wieder nicht den Parameter verwendet und statt dessen ...
Der Fehler scheint nicht zu sein, dass es mit externer JS-Datei NICHT geht, sondern vielmehr, dass es inline funktioniert.
~~~javascript
function fireRequest(){
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function () {
if (this.readyState == 4) {
document.form1.ich.value = this.responseText;
}
}
ajax.send(null);
}
Et voilà, das sollte sowohl inline als auch in externer Datei funktionieren.
Nebenbei solltest du deine ajax-Objekt-Instanzierung genauer angucken. AFAIK wird der IE da streiken, weil es beim IE anders instanziert wird.
MfG
bubble