1.3k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
Hallo,

folgendes Javascript funktioniert bei
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
wunderbar, jedoch bei
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
nicht. Woran könnte das liegen?




<script type="text/javascript" language="javascript">

var http_request = false;

function makeRequest(url, parameters) {

http_request = false;

if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();

} 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('HTTP Instanz kann nicht erstellt werden');
return false;
}
http_request.onreadystatechange = htmlContents;
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}

function get(obj){
var poststr = "txt=" + encodeURI(document.getElementById("region").value );
makeRequest('ajaxing.php', poststr);
}

function htmlContents() {

if (http_request.readyState == 4) {
if (http_request.status == 200) {
document.getElementById('myspan').innerHTML = http_request.responseText;
} else {
alert('Fehler.');
}
}

}
</script>

6 Antworten

0 Punkte
Beantwortet von
was sagt die Firefox-Fehlerkonsole?

außerdem:
es gibt kein language-Atribut in XHTML
und Inline-Scripte müssen als CDATA gekennzeichnet sein
0 Punkte
Beantwortet von
Danke für Deine Antwort. Ich benutze keinen Firefox. Das Ändern des language-Attributs und CDATA hat nix geändert. Möglicherweise liegt das Ganze aber auch an der ajaxing.php. Denn an sich funktioniert das Javascript ja. Lediglich übergeben die Felder, die vom Script zurückgegeben werden, keine Werte, wenn der DOCTYPE strict ist.
Kann es vielleicht damit zusammenhängen, dass die PHP nicht
header('Content-type: text/html; charset=ISO-8859-1');
, sondern irgendwas anderes zu Beginn ausführen muss oder vielleicht der DOCTYPE in der PHP auch definiert werden muss?
0 Punkte
Beantwortet von
Wenn du ernsthaft JavaScript testen willst nutze bitte den Firefox!
0 Punkte
Beantwortet von
Laut Firefox keine Fehler. Der Fehler muss also in der PHP liegen.
0 Punkte
Beantwortet von
Wie ich gerade bemerkt habe, tritt der Fehler lediglich bei Opera Browsern auf. Woran könnte das liegen? Welche Javascript-Formulierung ist nicht eindeutig genug und lässt Opera es nicht verstehen?
0 Punkte
Beantwortet von
Fehlermeldungen der Opera-JavaScript-Konsole?

Ausgabe von Kontroll-Alerts?
...