Ajax mit IE
EDave
- javascript
0 hotti
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>
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