K
koli.bri
Hallo Ihr da draußen:
Untenstehende Funktion tut ihren Dienst zwar erstklassik in Safari und Opera, jedoch FireFox und Camino wehren sich wehement.
Anfangs gab mir FF noch eine Meldung aller "Syntax Error", den ich aber mit hilfe der angegebenen Seite ( diese hier ) weg bekommen habe.
(Das Script selbst hab ich auch von dieser seite, und wurde nur ein "wenig" modifiziert. Um das Switch-Case-Konstrukt braucht ihr euch eigentlich nicht kümmern, das kommt eh noch raus. Aber vorher soll das Script mit FF laufen, damit ich mit dem Debugger nen anderen Fehler rausprügeln kann.)
Ich nehme an, dass es etwas mit dem Mime-Type oder dem Header des Requests zu tun hat, den Safari und Opera sich selbst zurechtpflücken können, FireFox jedoch höhere Ansprüche hat.
Was mit der Funktion gemacht wird:
Es wird normaler Text (plain/text) zurückgegeben, größtenteils HTML-Bausätze, die mittels JavaScript in diverse DIVs eingefügt werden.
An anderer Stelle werden so Daten zwischen JavaScript und PHP ausgetauscht (quasi ein selbstgebasteltes JSON, aber nur ganz rudimäntär)
Daher schließt für mich die Verwendung eines MimeTypes für HTML-Blöcke erstmal aus
Der aktuelle Testfall, SOLL-Zustand
Es werden User und Passwort überprüft. durch das Formular wird ein Request gestartet, der im Idealfall
zurückgibt. Das wird in der abarbeitenden Funktion überprüft, und etwas in eine globale Variable geschrieben. Im Idealfall.
IST-Zustand:
Nicht einmal das alert("Hier bin ich") klappt...
Ich hoffe, das waren genug informationen...
Falls nicht, fragen...
gruß
Lukas
PS.: die Funktion "dw()" ist nur eine Testfunktion, die mir das Parameter in ein Testausgabefeld schreibt, damit ich die ganzen Alerts nicht wegklicken muss.
Untenstehende Funktion tut ihren Dienst zwar erstklassik in Safari und Opera, jedoch FireFox und Camino wehren sich wehement.
Anfangs gab mir FF noch eine Meldung aller "Syntax Error", den ich aber mit hilfe der angegebenen Seite ( diese hier ) weg bekommen habe.
(Das Script selbst hab ich auch von dieser seite, und wurde nur ein "wenig" modifiziert. Um das Switch-Case-Konstrukt braucht ihr euch eigentlich nicht kümmern, das kommt eh noch raus. Aber vorher soll das Script mit FF laufen, damit ich mit dem Debugger nen anderen Fehler rausprügeln kann.)
Ich nehme an, dass es etwas mit dem Mime-Type oder dem Header des Requests zu tun hat, den Safari und Opera sich selbst zurechtpflücken können, FireFox jedoch höhere Ansprüche hat.
Was mit der Funktion gemacht wird:
Es wird normaler Text (plain/text) zurückgegeben, größtenteils HTML-Bausätze, die mittels JavaScript in diverse DIVs eingefügt werden.
An anderer Stelle werden so Daten zwischen JavaScript und PHP ausgetauscht (quasi ein selbstgebasteltes JSON, aber nur ganz rudimäntär)
Daher schließt für mich die Verwendung eines MimeTypes für HTML-Blöcke erstmal aus
Der aktuelle Testfall, SOLL-Zustand
Es werden User und Passwort überprüft. durch das Formular wird ein Request gestartet, der im Idealfall
Code:
ok
IST-Zustand:
Nicht einmal das alert("Hier bin ich") klappt...
Ich hoffe, das waren genug informationen...
Falls nicht, fragen...
gruß
Lukas
PS.: die Funktion "dw()" ist nur eine Testfunktion, die mir das Parameter in ein Testausgabefeld schreibt, damit ich die ganzen Alerts nicht wegklicken muss.
Code:
/*
* dat/js/request.js
* Requestfunktion fuer das gesamte Projekt
*
*/
var request_funcs = new Array();
function macheRequest(url,funktion,vari) {
// dw(url); // DEBUG
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// http_request.overrideMimeType('text/xml'); // http://developer.mozilla.org/de/docs/AJAX:Getting_Started#Schritt_3_.E2.80.93_.22Jetzt_alle_zusammen.21.22_-_Ein_einfaches_Beispiel
}
} 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 = function(){
if (http_request.readyState == 4) {
alert("Hier bin ich");
// alert(http_request.status);
if (http_request.status == 200) {
// dw(http_request.responseText); // DEBUG
switch(funktion){
case "checklogin":
handle_login(http_request.responseText);
break;
// case "":
// break;
case "menueitem":
case "menueausr":
case "menuezaub":
case "menueskil":
case "menuewaff":
case "menuerust":
case "menuezube":
case "menuestat":
case "menuegrup":
handle_menue(http_request.responseText);
break;
case "menuegrupaktiv":
handle_menuegrupaktiv(vari);
break;
case "menuegrupdeakt":
handle_menuegrupdeakt(vari);
break;
case "menueausrwaffselect":
case "menueausrrustselect":
case "menueausrzubeselect":
handle_menueausrselect(http_request.responseText);
break;
case "menueausrwaff":
case "menueausrrust":
case "menueausrzube":
handle_menueausritem(http_request.responseText);
break;
case "menuewaffshow":
case "menuerustshow":
case "menuezubeshow":
handle_menueshowausr(http_request.responseText);
break;
case "kampf_holedaten":
handle_play_kampf_holedaten(http_request.responseText);
break;
case "":
alert("Keine Funktion beim Request genannt\nABBRUCH");
break;
default:
// dw("Funktion via Variable *Yeah*");
var func = request_funcs[funktion];
if(undefined != func){
func(http_request.responseText);
}else{
dw("Diese Funktion " + funktion + " gibt es wohl nicht");
}
// alert("Ungueltige Funktion beim Request genannt\n" + funktion + "\nABBRUCH");
break;
}
// handleevent(http_request.responseText,1);
//alert(http_request.responseText);
} else {
alert('Bei dem Request ist ein Problem aufgetreten.');
}
}
}
// http_request.setRequestHeader('Content-Type', 'text/plain');
http_request.open('GET', url, false);
http_request.send(null);
}