Ajax klappt mit Firefox - beim IE verschwindet alles

MadCrusher

Erfahrenes Mitglied
Hallo!

Ich hab ein großes Problem:
Ich hab schon ein einfaches Script im Internet gefunden und nichtmal das läuft mit dem IE (mit firefox schon)

test.php
Code:
<?
echo "<script type='text/javascript' src='test.js' >
<input type='button' name='test' value='klick mich' onclick='liveticker_object()'>";
?>
datei.php
Code:
<?
echo "hat geklappt!";
?>
test.js
Code:
http_request = false; 
function liveticker_object() 
{ 
    if (window.XMLHttpRequest) 
    { 
        http_request = new XMLHttpRequest(); 
        
        if (http_request.overrideMimeType) 
        { 
            http_request.overrideMimeType('text/xml'); 
        } 
    } 
    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('Sorry, das hat net geklappt...');
        return false; 
    } 
    http_request.onreadystatechange = showErgebnis; 
    http_request.open('GET', 'datei.php', true); 
    http_request.send(null); 
}

function showErgebnis() 
{ 
    if (http_request.readyState == 4) 
    { 
        if (http_request.status == 200) 
        { 
            alert(http_request.responseText); 
        }
        else
        {
            alert('Sorry, das hat nicht geklappt...');
        }
    }
}
Im Firefox erscheint die Box mit dem "geschafft-Text" beim IE seh ich nichteinmal den Button - jedoch im Quelltext steht er -

Es tritt kein sichtbarer Fehler auf...

Bitte um Hilfe!

Crusher
 
Hallo MadCrusher,

das Problem ist, das Firefox und IE verschiedene Methoden verwenden, um ein Ajax-Objekt zu erzeugen.
HTML:
//XMLHttpRequest-Instanz erstellen
//... für Internet Explorer
try {
 ajax_objekt =  new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
 try {
  ajax_objekt = new ActiveXObject("Microsoft.XMLHTTP");
 } catch(e) {
   ajax_objekt = false;
  }
}
//... für Mozilla, Opera, Safari usw.
if (!ajax_objekt && typeof XMLHttpRequest != 'undefined') {
 ajax_objekt = new XMLHttpRequest();
}
Hoffe, das hilft dir :)
Gruß jojomp

EDIT: Sorry, hatte übersehen, dass du die verschiedenen Varianten drin hast...
 
Zuletzt bearbeitet:
Hi danke für die fixe Antwort!

Aber schau dir mal den Bereich unter // IE an
macht der nicht das, was du mir geschrieben hast?

Crusher
 
Jep, habs leider zu spät gesehen :)
HTML:
    http_request.onreadystatechange = showErgebnis;
Ich weiß nicht genau, ob das was bringt, aber vielleicht solltest du die Klammeren () verwenden:
HTML:
    http_request.onreadystatechange = showErgebnis();

Gruß jojomp
 
Zuletzt bearbeitet:
Hey!

Nee leider nicht =(
Das muss doch irgendwie klappen!
Das ist ja nur ein Test-Script mein anderes funktioniert ja auch nicht und ist anders aufgebaut...
Wollte das kleine nur mal zum Testen nehmen aber nichtmal das geht!
GRML

*immernoch hilfe benötigt*
Crusher
 
Sry hatte keine Zeit um eine Antowrt zu geben!

Ou... jap das wars!
Danke! Gott möge mich wegen dieser dummheit bestrafen!

Gruß
Crusher
 

Neue Beiträge

Zurück