Hallo zusammen,
ich bastel momentan an einem Ajax basieren Template System und stehe vor einem für mich nicht verständlichen Problem und hoffe das ihr mir ein wenig helfen könnt.
Und zwar funktioniert der folgende Java Code nur, wenn ich in Zeile 33 (durch --><-- Markiert) einen alert erzeuge. Wenn ich diesen alert beispielsweise auskommentiere, wird das Script scheinbar nicht ausgeführt. Auch die Fehlerkonsole weißt keine Einträge vor.
HTML-Code:
<script type="text/javascript">
<!--
var request = false;
// Request senden
function setRequest(value,action) {
// 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) {}
}
} // END IF
// überprüfen, ob Request erzeugt wurde
if (!request) {
alert("Kann keine XMLHTTP-Instanz erzeugen");
return false;
} else {
var url = "module.php";
// Request öffnen
request.open('post', url, true);
// Requestheader senden
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// Request senden
request.send('mod='+value);
// Request auswerten
---Hier------->alert('Action:'+action);<--Hier ist die besagte alert box-------
request.onreadystatechange = interpretRequest(action);
}
}
// Request auswerten
function interpretRequest(action) {
switch (request.readyState) {
// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt
case 4:
if (request.status != 200) {
alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
} else {
switch (action) {
case 'load_template':
var content = request.responseText;
// den Inhalt des Requests in das <div> Tag schreiben
document.getElementById('main').innerHTML = content;
break;
case 'load_calender':
//Platzhalter
break;
case 'load_address':
//Platzhalter
break;
default:
alert('Parameter \'action\' is not define or incorect in function \'interpretRequest\'');
}
}
break;
default:
break;
}
}
//-->
</script>
Es scheint auch völlig irrelevant zu sein, was in der alert box ausgegeben wird. Auch ein
HTML-Code:
alert('Just for testing');
funktioniert tadellos. Für mich ist das alles andere als nachvollziehbar da die alert box ja eigentlich nichts mit dem Script an sich zutun hat. Könnt ihr euch das erklären?
Lieben Gruß
Memorix