Möglichkeit 1 mit Flag:
Code:
<script language="javascript" type="text/javascript">
var id_name;
var http_request;
var request_status
var request_content_v;
var response_present=false;
function request (url,id) {
id_name = id;
http_request = false;
request_content_v = "";
request_status = false;
document.getElementById(id_name).value = "load...";
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
// zu dieser Zeile siehe weiter unten
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
//alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
return false;
}
http_request.onreadystatechange = request_content;
http_request.open('GET', url, true);
http_request.send(null);
response_present=false;
while(!response_present) {
//do nothing but wait
if (response_present) {
break;
}
}
document.getElementById(id_name).value = request_content_v;
return request_status;
}
function request_content () {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
request_content_v = http_request.responseText
request_status = true;
} else {
alert('Bei dem Request ist ein Problem aufgetreten.');
request_status = false;
}
response_present = true;
}
}
</script>
Besser: Verarbeitung im CallBack
Code:
<script language="javascript" type="text/javascript">
var id_name;
var http_request;
var request_status
var request_content_v;
var response_present=false;
function request (url,id) {
id_name = id;
http_request = false;
request_content_v = "";
request_status = false;
document.getElementById(id_name).value = "load...";
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
// zu dieser Zeile siehe weiter unten
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
//alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
return false;
}
http_request.onreadystatechange = request_content;
http_request.open('GET', url, true);
http_request.send(null);
response_present=false;
//das hier wird auch nicht funktionieren, ist die Frage, ob das überhaupt gebraucht wird?!
//Kann wohl auch über request_content abgehandelt werden
return request_status;
}
function request_content () {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
request_content_v = http_request.responseText
request_status = true;
document.getElementById(id_name).value = request_content_v;
} else {
alert('Bei dem Request ist ein Problem aufgetreten.');
request_status = false;
}
}
}
</script>
Beides selbstverständlich ungetestet
Und könnte mal jemand diese ellenlange URL kürzen? Sprenung der Seitenbreite müsste mit Peitschenhieben bestraft werden