Luis Felger
Grünschnabel
Hallo,
ich hab ziemlich großes Problem. Ich habe folgende Dateien:
UserCore.js
index.html
Wie man sieht, wird durch den Try-Catch Block in der Funktion orderFromServer bei einem Fehler (wenns kein JSON ist), in die globale Variable error eine Nachricht geschrieben. Diese wird durch die callback-Funktion (update) in der index.html ausgegeben. Allerdings bleibt die Variable error - egal was ich mache - immer null. Ich hab's auch schon mit window.error probiert, aber es tut sich nichts.
Vielen Dank im Voraus
ich hab ziemlich großes Problem. Ich habe folgende Dateien:
UserCore.js
Code:
var http = null;
var server_MaxClients = null;
var server_Port = null;
var server_Version = null;
var error = null;
if(window.XMLHttpRequest) {
http = new XMLHttpRequest();
}
function orderFromServer(data, callback) {
if(http != null) {
http.open("GET", "/srv.data." + data, true);
http.onreadystatechange = function() {
if(http.readyState == 4) {
try {
var ret = null;
ret = eval("(" + http.responseText + ")");
for(var i = 0; i < ret.length; i++) {
var data = ret[i];
if(data.key == "max_clients") {
server_MaxClients = data.value;
}
if(data.key == "port") {
server_Port = data.value;
}
if(data.key == "version") {
server_Version = data.value;
}
}
} catch(e) {
error = "Received string is no JSON!";
}
callback();
}
};
http.send(null);
}
}
index.html
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Blizzard - Main Page</title>
<script type="text/javascript" language="javascript" src="scripts/UserCore.js"></script>
<script type="text/javascript" language="javascript">
function request() {
orderFromServer("all", update());
}
function update() {
if(error != null) {
var e = document.getElementById("error");
e.innerHTML = error;
e.style.display = "block";
return;
}
document.getElementById("max_clients").innerHTML = server_MaxClients;
document.getElementById("port").innerHTML = server_Port;
document.getElementById("version").innerHTML = server_Version;
}
</script>
</head>
<body onload="request();">
<table border="0">
<tr>
<td>Max Clients:</td>
<td><span id="max_clients">Waiting for request...</span></td>
</tr>
<tr>
<td>Port:</td>
<td><span id="port">Waiting for request...</span></td>
</tr>
<tr>
<td>Version:</td>
<td><span id="version">Waiting for request...</span></td>
</tr>
</table>
<p>
<b><span id="error" style="display:none;">No error found!</span></b>
</p>
</body>
</html>
Wie man sieht, wird durch den Try-Catch Block in der Funktion orderFromServer bei einem Fehler (wenns kein JSON ist), in die globale Variable error eine Nachricht geschrieben. Diese wird durch die callback-Funktion (update) in der index.html ausgegeben. Allerdings bleibt die Variable error - egal was ich mache - immer null. Ich hab's auch schon mit window.error probiert, aber es tut sich nichts.
Vielen Dank im Voraus