Autor |
Nachricht |
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Mi 09.04.2008 12:03
Titel AJAX Problem mit Internet Explorer |
|
|
Ich arbeite mich grad etwas in Ajax ein...
Und zwar erzeuge ich als erstes ein Request-Objekt: Code: | <script language="JavaScript" type="text/javascript">
//<![CDATA[
var xmlHttp = null;
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(ex){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(ex){
}
}
}
// ]]>
</script> |
Dann rufe ich im body per OnLoad die Funktion schritt1() auf: Code: | function schritt1(){
if (xmlHttp) {
alert(xmlHttp);
xmlHttp.open('POST', 'aktion.php');
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
xmlHttp.send('schritt=1');
document.getElementById("content").innerHTML = xmlHttp.responseText;
}
} |
Im FireFox wird #content entsprechend $_POST['schritt'] richtig ausgegeben.
Im InternetExplorer aber bleibt der Container leer!
Die Variable xmlHttp gebe ich ja mit alert aus, und die ist
im FF = [object XMLHttpRequest]
aber im IE = [object]
Was ist in der Instanziierung falsch gelaufen?
//edit
im Opera ist xmlHttp = [object XMLHttpRequest]
#content bleibt trozdem leer
hilfe
Zuletzt bearbeitet von am Mi 09.04.2008 12:07, insgesamt 1-mal bearbeitet
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Mi 09.04.2008 12:55
Titel
|
|
|
Welche MSIE-Version denn?
Absolute AJAX-Grundlagen, würde ich mal sagen...
Statt das native Objekt zu nutzen:
Code: | var http = new XMLHttpRequest(); |
Mußt du beim MSIE auf das ActiveX-Objekt instantiieren.
Code: | var http = new ActiveXObject( "Microsoft.XMLHTTP" ); |
Der MSIE 7 kennt auch das XMLHttpRequest-Objekt.
Ich würde dir empfehlen, eine Abfrage wie die folgende einzusetzen:
Code: | var http;
if ( window.XMLHttpRequest )
{
http = new XMLHttpRequest();
}
else if ( window.ActiveXObject )
{
http = new ActiveXObject( "Microsoft.XMLHTTP" );
} |
|
|
|
|
|
Anzeige
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Mi 09.04.2008 13:01
Titel
|
|
|
meinst du sowas, wie ich oben geschrieben habe?
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Mi 09.04.2008 13:30
Titel
|
|
|
hm,
vielleicht is schlicht weg noch nicht alles geladen, wenn du es in #content reinschreibst.
versuch doch mal...:
Code: |
if (xmlhttp.readyState==4) {
alert(xmlHttp.responseText);
}
|
ein...
|
|
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Mi 09.04.2008 13:45
Titel
|
|
|
danke, hab ich grad mal ausprobiert
Code: | alert(xmlhttp.readyState) |
im FF = 4(fertig)
im IE = 1(läd)
Ich versuchs jetzt mal mit xmlHttp.onreadystatechange
Ich hoffe da liegt der Fehler
Habe ich beides im schlauen ajax-Büchlein überlesen
|
|
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Mi 09.04.2008 14:18
Titel
|
|
|
egal wie ich es drehe und wende, es funktioniert nicht im IE
Hier nochmal der Code: Code: | <script language="JavaScript" type="text/javascript">
//<![CDATA[
var xmlHttp = null;
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(ex){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(ex){
}
}
}
function DatenAusgabe(){
alert(xmlHttp.readyState);
if(xmlHttp.readyState == 4){
var div = document.getElementById("content");
div.innerHTML += xmlHttp.responseText;
}
}
window.onload = function(){
xmlHttp.open('POST', 'aktion.php');
xmlHttp.onreadystatechange = DatenAusgabe;
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
xmlHttp.send('schritt=0');
}
// ]]>
</script> |
onreadystatechange bewirkt scheinbar, dass sich beim ändern
des Request-Status die Ausgabefunktion aufgerufen wird, und
in dieser dann bei Status 4 der response-Text ausgegeben wird.
Zur überprüfung wird mit alert der Request-Status ausgegeben.
Im FF erscheint einmal die Meldung 4 und es wird alles richtig ausgegeben.
Im IE erscheinen 4 Meldungen von 1 bis 4 und es wird rein gar nichts ausgegeben.
Das kann doch nicht sein oder?
hilfe
//Edit
Scheiße!! Ich hab mal die prototype.js (für einen slide-Effekt) wieder
rausgenommen und jetzt klappt die Ausgabe mit dem IE. Wird zwar
an falscher Stelle platziert aber immerhin.
So ein... KÄSE
Zuletzt bearbeitet von am Mi 09.04.2008 14:27, insgesamt 1-mal bearbeitet
|
|
|
|
|
Zeithase
Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht:
|
Verfasst Mi 09.04.2008 14:28
Titel
|
|
|
Nimm' lieber gleich ein Framework und mach Dir das Leben einfach. Ansonsten mal Quick'n'Dirty-Copy-Paste-Before-IE7-Simple-Example aus meinem Ajax-Buch:
Code: | <html>
<head>
<script type="text/javascript">
function createRequestObject() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer") {
ro = new ActiveXObject("Microsoft.XMLHTTP");
} else {
ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();
function handleResponse() {
if(http.readyState == 4){
var response = http.responseText;
if (http.status == 200) {
document.getElementById('content').innerHTML = response;
} else {
document.getElementById('content').innerHTML = "Fehler: " + http.status + " " + http.statusText;
}
}
}
window.onload = function() {
http.open('post', 'aktion.php');
http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http.onreadystatechange = handleResponse;
http.send('schritt=0');
}
</script>
<title>Beispiel</title>
</head>
<body>
<div id="content">
</div>
</body>
</html> |
|
|
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Mi 09.04.2008 14:42
Titel
|
|
|
dankedanke, aber ich habs nun endlich!!
Habe jetzt prototype etc. nach meinem Script eingebunden.
Wenn man sie voher einbindet funktioniert es nicht überall.
Was fürne Geburt.. THX@ALL!
|
|
|
|
|
|
|
|
Ähnliche Themen |
Problem mit Internet Explorer
Problem mit dem Internet Explorer
Problem Kodierung im Internet Explorer 6
Dickes Problem mit dem Internet Explorer
Problem bei Wiedergabe von .gif im Internet Explorer
Problem mit Schriftart in Firefox und Internet Explorer
|
|