MarkusDippold: beim Netscape geht's, bei Opera und IE nicht, warum?

Hi,

ich rätsle jetzt schon ein paar Tage herum und habe keine Ahnung, warum wieso weshalb.

Im Web habe ich ein Script gefunden, mit dem man "Drückbuttons" machen kann, will heißen, ich klicke drauf, die Grafik ändert sich, beim Loslassen wird wieder die alte Grafik angezeigt (mit Vorladen etc.).
Das funktioniert auch - im Prinzip.

Jetzt ist es aber so, daß die Anzahl der Grafiken auf der Seite mehr oder weniger dynamisch ist. Das Script, das ich habe, kann das wohl auch.
Aber: Mit dem Netscape 4.x klappt es hervorragend. Mit Opera (als Opera ausgegeben) und dem IE6 funktioniert es nur bei manchen Grafiken. Und das verstehe ich nicht. Entweder es sollte immer gehen oder gar nicht.

Das Script, das das macht, kann auf folgendem Weg eingesehen werden.
www.dippold.org -> NFS III -> Fahrzeuge
In dem Frame, in die Buttons 0-9,A..Z und Pursuit sind, ist auch das Script enthalten.
So, jetzt aber im Star Trek-Teil:
Da ist das Script (exakt das gleiche) in ein JS-File ausgelagert (es macht aber keinen Unterschied, ob es im HTML-File selbst ist oder nicht, habe das schon ausprobiert). Wenn ihr z.B. Star Trek -> Classic anwählt, dann gibt es da die Amazon- und Vote-Buttons.
Bei den Büchern Blutdurst, Der Rächer, Die Abenteuer des Raumschiffs Enterprise, Die Eisfalle, Die Zeitfalle, Geiseln für den Frieden, Keine Spur von Menschen, Schwarzes Feuer funktionieren die Amazon-Buttons, bei allen anderen nicht. Die Vote-Buttons gehen überhaupt nicht.
Und das aber nur beim Opera und beim IE. Beim Netscape geht alles.

Beim Durchsteppen der Scripts habe ich auch den Eindruck, daß einige Variablen beim Opera und IE offenbar anders behandelt werden bzw. manche Button-IDs nicht gefunden werden.
Der Gag ist, daß die Buttons beim NFS-Frame alle funktionieren.
Ich frage mich, ob das etwas damit zu tun hat, daß auch jeder Button seinen eigenen "Tauschbutton" hat, was bei dem Star Trek-Teil ja nicht so ist. Die vergebenen IDs sind jedenfalls alle unterschiedlich.

Nochwas, ich rede nicht von den Links (bevor Mißverständnisse aufkommen). Die Links funktionieren wie gewünscht.
Ich will nur, daß sich der Button sozusagen reindrückt (simuliert durch das Austauschen der Grafik), wenn man draufklickt.

Hat da jemand eine Idee, woran das liegen könnte?
Codefehler sind es wohl nicht, denn das wurde alles von einem selbstgeschriebenen Tool erledigt. Dann sollte es entweder immer gehen oder eben gar nicht (wenn doch was in der Implementierung falsch ist).

Vielen Dank schon mal und nicht von dem vielen HTML abschrecken lassen, es ist immer wieder das gleiche, eine lange Liste eben.

Gruß,
Markus

  1. Hallo Markus,

    mir ist es ein wenig aufwendig, an dein Script heranzukommen, poste doch bitte einen direkten Link auf die Seiten, die die Probleme machen.

    Detlef

    1. Hallo Markus,

      mir ist es ein wenig aufwendig, an dein Script heranzukommen, poste doch bitte einen direkten Link auf die Seiten, die die Probleme machen.

      Danke, aber das wird nicht mehr notwendig sein.
      Ich habe weitergesucht (waren ja nur zwei Tage ;-) ) und dann doch eine funktionierende Lösung gefunden.

      Gruß,
      Markus

      1. Hallo Markus!

        Ich habe weitergesucht (waren ja nur zwei Tage ;-) ) und dann doch eine funktionierende Lösung gefunden.

        Womit dieses SELF-Forum seinen Zweck bestens erfüllt hat!
        Du hast mit Sicherheit wesentlich mehr dabei gelernt, als wenn sich hier jemand die Arbeit gemacht hätte, und dir vieleicht gleich die Lösung deines Problems gepostet hätte.

        Auf selbst (SELF) gefundene Problemlösungen kann man mit Recht stolz sein!

        Detlef

        1. Hallo Markus!

          Ich habe weitergesucht (waren ja nur zwei Tage ;-) ) und dann doch eine funktionierende Lösung gefunden.

          Womit dieses SELF-Forum seinen Zweck bestens erfüllt hat!
          Du hast mit Sicherheit wesentlich mehr dabei gelernt, als wenn sich hier jemand die Arbeit gemacht hätte, und dir vieleicht gleich die Lösung deines Problems gepostet hätte.

          Auf selbst (SELF) gefundene Problemlösungen kann man mit Recht stolz sein!

          -> Erzähl' das meiner Frau ;-)))

          Dumm nur, daß ich die Lösung nicht hier gefunden habe ;-)
          Hier wird ja immer nur das prinzipielle Problem "Wie ersetze ich durch ein MouseOver bzw. MouseDown die Grafik?" angesprochen. Darüber bin ich längst hinaus und habe das sogar ohne Hilfe hinbekommen.
          Bei einer oder vergleichsweise wenigen Grafiken ist das ja kein Problem. Schwieriger wird's, wenn man derer 100 oder mehr (oder beliebig viele) auf der Seite hat (aber nur drei verschiedene Typen) und der HTML-Code dazu dynamisch generiert wird (aber kein dynamic HTML).
          Dann wird entweder der Code verdammt lang - oder man braucht eine intelligente Lösung.
          Ich habe einfach weiter durchgesteppt. Das Problem war, daß der Opera mit alert() was anderes ausgibt als der Netscape (bei dem es seltsamerweise funktionierte) und der IE wieder was anderes. Das lag wohl an den verwendeten Methoden in Verbindung mit der Zählweise der Frameinstanzen, die jeder anders interpretiert hat.
          Irgendwann bin ich durchgestiegen, was das Script eigentlich genau macht und habe die Funktion vereinfacht. Das Problem lag darin begründet, daß der Opera und der IE in einem anderem Frame (also anderem Dokument) nachgeguckt haben, ob da die gesuchte Grafik enthalten ist, die aber ungünstigerweise in einem anderen Frame angelegt wurde. Und dann fand das Script nichts bzw. nur manchmal, was wohl vom Zufall (Ladezeitpunkt des Frames) bestimmt war (irgendwie sowas jedenfalls).

          Jetzt geht's aber.

          Gruß,
          Markus