Mac Safari und Javascript

Hallo,
ich habe folgendes, mir unerklärliches Problem:
Ich habe ein javascript in einer html-Datei, das Folgendes bewirken soll: Ein
gif soll ohne erneutes Laden der html-Datei durch klicken auf den „next“-button
ausgetauscht werden. Beginnend mit 01.gif, dann 02.gif, dann 03.gif, und dann
weiter als Schleife, wieder mit 01.gif beginnend. Oder das gleiche Prinzip
umgekehrt mit dem „prvious“-button.
Also eine einfacher Durchlauf durch eine Galerie.

Funktioniert auch auf allen von mir getesteten Browsern, aber leider nicht auf
Safari. Da funktioniert bei der älteren Version gerade mal ein Durchlauf (01-
>02->03->01), dann geht es nicht weiter, bei der aktuellen Version funktioniert
gerade mal ein oder zwei Klicks, dann ist schon alles taub.

Bitte schreibt mir jetzt nicht, dass Safari sowieso doof ist und kein Mensch
Safari verwendet - mein Auftraggeber verwendet Ihn.

Ich wäre sehr dankbar, wenn jemand das Problem oder besser dessen Lösung kennt,
denn ich weiss nicht mehr weiter.

Folgend der link, falls jemand probieren möchte:

http://www.momproductions.de/123/123.html

Vielen Dank schon mal,
Per

hallo erstmal,

ich glaube, ich weiß, wo das Problem liegt. In der switchImage-
Funktion testest du per

if(displayImages[current_index] == 0){

ob ein Array-Element = 0 ist. Das geht aber nur, solange dieses
Array-Element tatsächlich einen als Text interpretierbaren Inhalt
hat. Beim zweiten Durchlauf beinhaltet das Array-Element aber keinen
Text mehr, sondern ein Objekt. Und Safari scheint da sehr strikt zu
sein. Du kannst den Type-Error sehen, wenn du in Safari (soweit
aktiviert) im Debug-Menü die Javascript-Konsole öffnest.
Meine Empfehlung: Führe eine weitere Boolean-Variable ein, die du auf
true setzt, sobald die Bildersequenz einmal durchlaufen ist. So
kannst du in der obigen if-Anweisung den true-Wert der von mir
erwähnten Variable prüfen:

Noch was ist mir aufgefallen. Ich denke, du kannst:

if(direction == true){
in
if(direction){

ändern. Das müßte genauso funktionieren, ist aber kürzer.

Ich glaub, da ist noch ein anderer Fehler…
…außerdem ist das Ganze ehrlich gesagt, etwas umständlich gelöst.
Hier mal die for-schleife und die switchImage-Funktion in einer
verkürzten Version:

for(var i = 1; i max\_image || current\_index == 0) {
 current\_index = 1;
 }
 } 
 else{
 current\_index--;
 if(current\_index 
Kannst ja mal probieren, ob es so funktioniert (die zweite Zeile in 
der for-schleife "i 

Hallo Stephan,

grossartig. Vielen Dank. Unglaublich hilfreich. Ich habe es zweienhalbtage
nicht herausgefunden und jetzt funktioniert das ganze sogar in Opera.
Ich kann nur hoffen, dass Du mal eine Frage stellst, bei der ich weiterhelfen
kann. Nochmals Danke und Grüsse,
Per

Kein Problem, ich helf gern
Hat mir sogar Spaß gemacht, da ich gern solche Probleme löse :smile: