Hi,
ich habe mir eine einfache Bilderrevue geschrieben. Ein Startbild, darunter zwei Pfeile links/rechts. Bei Klick auf einen der Pfeile wird das Startbild mit Javascript durch ein anderes ausgetauscht. Die Bilder, die man so „durchblättern“ kann, lese ich mit PHP aus einem Verzeichnis und schreibe diese dann in ein Javascript-Array. Man „blättert“ also durch die Einträge im Array. Soweit funktioniert es auch.
Wenn ich im IE auf einen der Pfeile klicke, wird das Bild auch ausgetauscht. Nur das neue Bild wird nicht angezeigt. Ich kann es nur per Rechtsklick „Bild anzeigen“ anzeigen lassen. Oder ich lasse nach dem Bildtausch eine alert()-Box anzeigen, dann wird das Bild auch angezeigt, aber das kann man ja so niemanden zumuten. Mit dem Firefox funktioniert es.
Ich habe bereits im SELFHTML-Forum nachgeschaut. Dort habe ich nur erfahren, dass eventuell der Browser ne Macke hat, wenn ein oder mehrere Bilder mehrfach auf der Seite angezeigt werden. Ich habe zwar mehrere Bilder doppelt auf der Seite, aber auch wenn ich die Bilderrevue alleine auf die Seite nehme, werden die Bilder nicht angezeigt. Das kann es also nicht sein.
Browsercache habe ich auch gelöscht. IE gschlossen und neu gestartet.
Hier nun das Javascript:
var arr_pics = new Array(‚hier sind die Bilder drin‘);
function bilder(akt,targ,dir){
// akt = aktuelles Bild
// targ = zu änderndes Bild (Name)
// dir = Blätterrichtung 1: rechts 0: links
// akt Bild im Array
if(akt.indexOf(‚0.gif‘)==-1){
// aktuellen Bildnamen extrahieren
var bname_akt2 = akt.split("/");
var bname_akt = bname_akt2[bname_akt2.length-1];
for(var i=0;i<arr_pics.length;i++){
// aktuellen Bildnamen im Arrayextrahieren
var bname_arr2 = arr_pics[i].split("/");
var bname_arr = bname_arr2[bname_arr2.length-1];
if(bname_akt==bname_arr){
var i_tmp = i;
break;
}else{
var i_tmp = 0;
}
}
}else{
var i_tmp = 0;
}
// links blättern
if(dir==0){
i_tmp–;
if(i_tmp<0)
i_tmp = arr_pics.length - 1;
// rechts blättern
}else{
i_tmp++;
if(i_tmp>=arr_pics.length)
i_tmp = 0;
}
targ.src = arr_pics[i\_tmp];
return arr_pics[i\_tmp];
}
}
Hier der Aufruf bei Klick auf einen der Pfeile