EDave: Ajax mit IE

Unter dem IE 7 funktioniert meine Bildnachladefunktion nicht, im FF dagegen schon. Woran liegt das?

Wer lust hat sich da reinzufitzen:

HTML-Thumbnail:
<a href="javascript:galaLoadImage('gala', '1.jpg')"><img src="galaries/gala/thumbnails/1.jpg" alt="Anstrich" onmouseover="galaPrecaching('gala', '1.jpg')" onmouseout="galaStopPrecaching()" /></a>

Nachladfunktionen:

if (navigator.appName == 'Microsoft Internet Explorer' && navigator.userAgent.indexOf('Opera') == -1) {  
  ajaxobj = new ActiveXObject("MSXML2.XMLHTTP")   // shity IE  
} else {  
  ajaxobj = new XMLHttpRequest();                 // ...the rest  
}  
  
var precache;  
  
function galaPrecaching (gala, file){  
  precache = new Image;  
  precache.src = "galaries/" + gala + "/" + file;  
}  
  
function galaStopPrecaching(){  
  precache.src = "";  
}  
  
function galaLoadImage (gala, file){  
  // <-- prepare loading  
  document.getElementById("description").innerHTML = "loading...";  
  document.getElementById("loading").src = "style/loading.gif";  
  document.getElementById("loading").alt = "loading...";  
  // prepare -->  
  
  ajaxobj.open("get", "ajax-gala.php?gala="+gala+"&file="+file, true);  
  ajaxobj.onreadystatechange = galaHandleResponse;  
  ajaxobj.send(null);  
}  
  
function galaHandleResponse () {  
  if (ajaxobj.readyState == 4) {  
    // <-- Header einfügen  
    if(ajaxobj.responseXML.getElementsByTagName('header')[0].firstChild !== null){  
      document.getElementById('imgheader').innerHTML = ajaxobj.responseXML.getElementsByTagName('header')[0].firstChild.data;  
    } else {  
      document.getElementById('imgheader').innerHTML = "";  
    }  
    // Header -->  
  
    // <-- Description einfügen  
    if(ajaxobj.responseXML.getElementsByTagName('desc')[0].firstChild !== null){  
      document.getElementById('description').innerHTML = ajaxobj.responseXML.getElementsByTagName('desc')[0].firstChild.data;  
    } else {  
      document.getElementById('description').innerHTML = "";  
    }  
    // Description -->  
  
    // <-- clear loading animation  
    document.getElementById("loading").src = "";  
    document.getElementById("loading").alt = "";  
    // clear -->  
  
    document.getElementById("mainpic").src = precache.src;  
  }  
}

die Datei ajaxload.php liefert hier folgendes:

<root>  
  <header>Überschrift</header>  
  <desc>Beschreibung</desc>  
</root>
  1. moin,

    [code lang=javascript]if (navigator.appName == 'Microsoft Internet Explorer' && navigator.userAgent.indexOf('Opera') == -1) {
      ajaxobj = new ActiveXObject("MSXML2.XMLHTTP")   // shity IE

    versuchs mal so:
    Wenn Explorer: new ActiveXObject("Microsoft.XMLHTTP");
    sonst: new XMLHttpRequest();

    Hotte

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.