Hallo!
Ich bin der Verzweiflung nah! Ich habe eine Bildergallerie gebaut, bei welcher ein Bild groß und die kleineren darunter in klein dargestellt werden. Beim Klick auf ein kleines Bild soll das Großbild gegen dieses getauscht werden.
Dies klappt auch alles einwandfrei. Zufällig sitze ich jetzt aber wieder an meinem alten Notebook, wo noch der IE6 drauf läuft. Hier tritt jetzt ein total mysterioeser Fehler auf:
Nach Klick auf ein kleines Bild wird nur ab und zu das jew. Bild in Groß angezeigt. Meistens verschwindet das aktuelle Bild und dafür bleibt die Stelle einfach leer. Klicke ich mit der rechten Maustaste auf die Eigenschaften sehe ich, dass der neue Pfad eingetragen ist. Wähle ich dort "Bild anzeigen" so wird das Bild auch immer angezeigt. Allerdings werden dann die Größenangaben nicht korrigiert und das Bild ist verzerrt.
Nun wird es noch mysterioeser: Füge ich direkt nach "img.src = newsrc;" ein "alert('test');" ein, so werden die Bilder zu 100% einwandfrei getauscht und dargestellt. Nehme ich es wieder raus ist der Fehler wieder da... Ich kann nach einem Tag allmöglicher Tests absolut nicht erkennen woran das liegen könnte. An anderen Stellen tausche ich auch Bilder und dort klappt es auch mit meinem IE6 hier immer.
---
Glaubt ihr mein IE spinnt einfach nur (der Quelltext lässt sich auch immer nur nach Löschen der Temporären Dateien anzeigen..) oder habe ich vielleicht irgend nen Fehler gemacht, so dass ich in einen Bug vom IE6 reinrassele?
Hier der Code in Kurzform:
// bilder ist ein Array mit Informationen zu den Bildern (Src, Groesse, Alt...)
function picChanged(thumbsrc){
for(i=0 ; i<bilder.length ; i++){
if(thumbsrc.indexOf(bilder[i][2])>=0){
showPic(i); // Tauscht das Bild, übergibt nur die Bildnummer
break;
}
}
}
function showPic(i){
haupt = document.getElementById('hauptbild'); // div
haupt_a = haupt.getElementsByTagName('a')[0];
haupt_img = haupt.getElementsByTagName('img')[0];
// ...
haupt_img.width = sizex;
haupt_img.height = sizey;
haupt_img.alt = xl.alt = altl;
haupt_img.src = xl.src = src;
// alert('test'); - Wird hier alert ausgeführt klappt der Tausch..
}
---
So ich hoffe durch die Vereinfachung hab ich nichts wichtiges gelöscht. Aber viel mehr findet eigentlich nicht statt... Ich hoffe einer von euch kennt zufällig eine Lösung. Ich bin am Ende ;)