Olli: Bildwechsel über einen frame hinaus

Hi

Ich möchte bei meiner Homepage links eine Navigation und oben eine "erweiterte" Navigation einbauen. Beide sind in seperaten Frames untergebracht. Soll dann so aussehen, dass bei Klick auf den linken Button oben eine Reihe von Links (in Form von Bildern) aufgehen. Mein Quellcode sollte anscheinend auf beiden (großen) Browsern funktionieren. Leider geht es nur beim IE. Mein Netscape 4.77 (hab leider nur dieses und kann kein neueres ziehen, weil mein Zugang zu lahm ist) macht hingegegen gar nichts. Keine Fehlermeldung (Dialog oder Statuszeile), kein Fehler in der Javascript-Konsole. Aber hier ist mal der Quelltext (bzw. ein Ausschnitt davon!):

function wahl(art) {
  if (art == 'verein') {
 parent.head.document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';
 parent.head.document.images['aktive_11'].src = 'images/aktive_11_verein.jpg';
 parent.head.document.images['aktive_13'].src = 'images/aktive_13_verein.jpg';
 parent.head.document.images['aktive_23'].src = 'images/aktive_23_verein.jpg';
    parent.head.document.images['aktive_25'].src = 'images/aktive_25_verein.jpg';
 parent.head.document.images['aktive_27'].src = 'images/aktive_27_verein.jpg';
 parent.head.document.images['aktive_17'].src = 'images/aktive_17_verein.jpg';
  }

Ist es damit schon getan oder sollte man noch irgendwelche Browserspezifischen Abfragen machen oder ähnliches!?

  1. Hallo Olli,

    Mein Quellcode sollte anscheinend auf beiden (großen) Browsern funktionieren.

    Es gibt noch _viel_ mehr Browser. Netscape 4.77 ist veraltet, die Anzahl derjenigen, die ihn verwenden, schwindet täglich. Was nicht heißt, dass man ihn nicht auch noch unterstützen sollte, aber es ist auch sinnvoll, sich mal mit anderen Browsern auseinanderzusetzen:

    http://www.mozilla.org/
    http://www.opera.com/

    (hab leider nur dieses und kann kein neueres ziehen, weil mein Zugang zu lahm ist)

    Auf vielen Zeitschrift-CDs gibt es oft Browser schon fertig gedownloaded.

    parent.head.document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';

    Eigentlich müßte das auch der Netscape 4 tun, das konnte schon Netscape 3. Bist Du Dir sicher, dass die Funktion im Netscape 4 überhaupt aufgerufen wird? Probiere mal einen alert() reinzumachen, um das zu testen. Wenn die Funktion wirklich aufgerufen wird, dann wäre die einzige andere Erklärungsmöglichkeit, die ich hätte, dass die Dateien in den beiden Frames in unterschiedlichen Verzeichnissen liegen. Netscape 4 reagiert da auf relative Pfadangaben anders als die anderen Browser. Absolute Pfadangaben zu verwenden hilft in so einem Fall.

    Viele Grüße,
    Christian

    --
    Ich bin ein Bandbreitenverschwender. Meine Signatur tut mir leid. Ehrlich!
    1. Hi Christian

      Es gibt noch _viel_ mehr Browser. Netscape 4.77 ist veraltet, die Anzahl derjenigen, die ihn verwenden, schwindet täglich. Was nicht heißt, dass man ihn nicht auch noch unterstützen sollte, aber es ist auch sinnvoll, sich mal mit anderen Browsern auseinanderzusetzen:

      http://www.mozilla.org/
      http://www.opera.com/

      Opera hab ich schon probiert und es funktioniert auch da einwandfrei - danke!

      parent.head.document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';

      Eigentlich müßte das auch der Netscape 4 tun, das konnte schon Netscape 3. Bist Du Dir sicher, dass die Funktion im Netscape 4 überhaupt aufgerufen wird? Probiere mal einen alert() reinzumachen, um das zu testen.

      Hab ich gerade probiert, die Funktion wird aufgerufen.

      Wenn die Funktion wirklich aufgerufen wird, dann wäre die einzige andere Erklärungsmöglichkeit, die ich hätte, dass die Dateien in den beiden Frames in unterschiedlichen Verzeichnissen liegen. Netscape 4 reagiert da auf relative Pfadangaben anders als die anderen Browser. Absolute Pfadangaben zu verwenden hilft in so einem Fall.

      Liegen im gleichen Verzeichnis. Kann es sein, dass beim Installieren ein Teil von Netscape nicht mitinstalliert wurde, der für diese Javascript-Befehle zuständig ist??? Das wäre nun meine letzte Lösung des Problems... Wobei dann der alert()-Befehl auch nicht hätte funktionieren dürfen.

      Danke für die Hilfe

      Gruss OLLI

      1. Hallo Olli,

        Liegen im gleichen Verzeichnis.

        Könnte ich mal eine Testseite sehen?

        Viele Grüße,
        Christian

        --
        Ich bin ein Bandbreitenverschwender. Meine Signatur tut mir leid. Ehrlich!
        1. Hallo Olli,

          Liegen im gleichen Verzeichnis.

          Könnte ich mal eine Testseite sehen?

          http://www.tsv-warthausen.de/test/index.html

          Gruss Olli

          1. Hallo Olli,

            http://www.tsv-warthausen.de/test/index.html

            Jetzt sehe ichs:

            <div id="aktive-1"><img src="images/aktive_1.jpg" width="306" height="39" alt="" /></div>

            Du hast das Bild in ein <div> gepackt, das Du absolut positioniert hast. Somit wird es für Netscape 4 zu einem Layer und somit zu einem anderen Dokument.

            Also:

            function wahl(art) {
              if (art == 'verein') {
                if (document.layers) { // wenn Netscape 4
                  parent.head.document.layers['aktiv-9'].document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';
                  parent.head.document.layers['aktiv-11'].document.images['aktive_11'].src = 'images/aktive_11_verein.jpg';
                  parent.head.document.layers['aktiv-13'].document.images['aktive_13'].src = 'images/aktive_13_verein.jpg';
                  parent.head.document.layers['aktiv-23'].document.images['aktive_23'].src = 'images/aktive_23_verein.jpg';
                  parent.head.document.layers['aktiv-25'].document.images['aktive_25'].src = 'images/aktive_25_verein.jpg';
                  parent.head.document.layers['aktiv-27'].document.images['aktive_27'].src = 'images/aktive_27_verein.jpg';
                  parent.head.document.layers['aktiv-17'].document.images['aktive_17'].src = 'images/aktive_17_verein.jpg';
                } else { // sonst
                  parent.head.document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';
                  parent.head.document.images['aktive_11'].src = 'images/aktive_11_verein.jpg';
                  parent.head.document.images['aktive_13'].src = 'images/aktive_13_verein.jpg';
                  parent.head.document.images['aktive_23'].src = 'images/aktive_23_verein.jpg';
                  parent.head.document.images['aktive_25'].src = 'images/aktive_25_verein.jpg';
                  parent.head.document.images['aktive_27'].src = 'images/aktive_27_verein.jpg';
                  parent.head.document.images['aktive_17'].src = 'images/aktive_17_verein.jpg';
                }
              }

            Viele Grüße,
            Christian

            --
            Ich bin ein Bandbreitenverschwender. Meine Signatur tut mir leid. Ehrlich!
            1. Hallo Olli,

              http://www.tsv-warthausen.de/test/index.html

              Jetzt sehe ichs:

              <div id="aktive-1"><img src="images/aktive_1.jpg" width="306" height="39" alt="" /></div>

              Du hast das Bild in ein <div> gepackt, das Du absolut positioniert hast. Somit wird es für Netscape 4 zu einem Layer und somit zu einem anderen Dokument.

              Also:

              function wahl(art) {
                if (art == 'verein') {
                  if (document.layers) { // wenn Netscape 4
                    parent.head.document.layers['aktiv-9'].document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';
                    parent.head.document.layers['aktiv-11'].document.images['aktive_11'].src = 'images/aktive_11_verein.jpg';
                    parent.head.document.layers['aktiv-13'].document.images['aktive_13'].src = 'images/aktive_13_verein.jpg';
                    parent.head.document.layers['aktiv-23'].document.images['aktive_23'].src = 'images/aktive_23_verein.jpg';
                    parent.head.document.layers['aktiv-25'].document.images['aktive_25'].src = 'images/aktive_25_verein.jpg';
                    parent.head.document.layers['aktiv-27'].document.images['aktive_27'].src = 'images/aktive_27_verein.jpg';
                    parent.head.document.layers['aktiv-17'].document.images['aktive_17'].src = 'images/aktive_17_verein.jpg';
                  } else { // sonst
                    parent.head.document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';
                    parent.head.document.images['aktive_11'].src = 'images/aktive_11_verein.jpg';
                    parent.head.document.images['aktive_13'].src = 'images/aktive_13_verein.jpg';
                    parent.head.document.images['aktive_23'].src = 'images/aktive_23_verein.jpg';
                    parent.head.document.images['aktive_25'].src = 'images/aktive_25_verein.jpg';
                    parent.head.document.images['aktive_27'].src = 'images/aktive_27_verein.jpg';
                    parent.head.document.images['aktive_17'].src = 'images/aktive_17_verein.jpg';
                  }
                }

              Viele Grüße,
              Christian

              Ah, gut zu wissen. Vielen Dank. Damit dürfte ich mein Problem wohl gelöst haben!

              1. Hallo Olli,

                http://www.tsv-warthausen.de/test/index.html

                Jetzt sehe ichs:

                <div id="aktive-1"><img src="images/aktive_1.jpg" width="306" height="39" alt="" /></div>

                Du hast das Bild in ein <div> gepackt, das Du absolut positioniert hast. Somit wird es für Netscape 4 zu einem Layer und somit zu einem anderen Dokument.

                Also:

                function wahl(art) {
                  if (art == 'verein') {
                    if (document.layers) { // wenn Netscape 4
                      parent.head.document.layers['aktiv-9'].document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';
                      parent.head.document.layers['aktiv-11'].document.images['aktive_11'].src = 'images/aktive_11_verein.jpg';
                      parent.head.document.layers['aktiv-13'].document.images['aktive_13'].src = 'images/aktive_13_verein.jpg';
                      parent.head.document.layers['aktiv-23'].document.images['aktive_23'].src = 'images/aktive_23_verein.jpg';
                      parent.head.document.layers['aktiv-25'].document.images['aktive_25'].src = 'images/aktive_25_verein.jpg';
                      parent.head.document.layers['aktiv-27'].document.images['aktive_27'].src = 'images/aktive_27_verein.jpg';
                      parent.head.document.layers['aktiv-17'].document.images['aktive_17'].src = 'images/aktive_17_verein.jpg';
                    } else { // sonst
                      parent.head.document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';
                      parent.head.document.images['aktive_11'].src = 'images/aktive_11_verein.jpg';
                      parent.head.document.images['aktive_13'].src = 'images/aktive_13_verein.jpg';
                      parent.head.document.images['aktive_23'].src = 'images/aktive_23_verein.jpg';
                      parent.head.document.images['aktive_25'].src = 'images/aktive_25_verein.jpg';
                      parent.head.document.images['aktive_27'].src = 'images/aktive_27_verein.jpg';
                      parent.head.document.images['aktive_17'].src = 'images/aktive_17_verein.jpg';
                    }
                  }

                Viele Grüße,
                Christian

                Ah, gut zu wissen. Vielen Dank. Damit dürfte ich mein Problem wohl gelöst haben!

                Ich trau mich ja gar nicht, das zu sagen, aber es funzt immer noch nicht!

                1. Hallo Olli,

                  Ich trau mich ja gar nicht, das zu sagen, aber es funzt immer noch nicht!

                  Was funktioniert nicht? Wie sieht Dein aktueller Code aus? Was steht in der JS-Konsole?

                  Viele Grüße,
                  Christian

                  --
                  Ich bin ein Bandbreitenverschwender. Meine Signatur tut mir leid. Ehrlich!
                  1. Hallo Olli,

                    Ich trau mich ja gar nicht, das zu sagen, aber es funzt immer noch nicht!

                    Was funktioniert nicht?

                    Der Bildwechsel wie gehabt

                    Wie sieht Dein aktueller Code aus?
                     function wahl(art) {
                       if (art == 'verein') {
                         if (document.layers) { // wenn Netscape 4
                           parent.head.document.layers['aktiv-9'].document.images'aktive_9'].src = 'images/aktive_9_verein.jpg';
                           parent.head.document.layers['aktiv-11'].document.images['aktive_11'].src = 'images/aktive_11_verein.jpg';
                           parent.head.document.layers['aktiv-13'].document.images['aktive_13'].src = 'images/aktive_13_verein.jpg';
                           parent.head.document.layers['aktiv-23'].document.images['aktive_23'].src = 'images/aktive_23_verein.jpg';
                           parent.head.document.layers['aktiv-25'].document.images['aktive_25'].src = 'images/aktive_25_verein.jpg';
                           parent.head.document.layers['aktiv-27'].document.images['aktive_27'].src = 'images/aktive_27_verein.jpg';
                           parent.head.document.layers['aktiv-17'].document.images['aktive_17'].src = 'images/aktive_17_verein.jpg';
                         } else { // sonst
                           parent.head.document.images['aktive_9'].src = 'images/aktive_9_verein.jpg';
                           parent.head.document.images['aktive_11'].src = 'images/aktive_11_verein.jpg';
                           parent.head.document.images['aktive_13'].src = 'images/aktive_13_verein.jpg';
                           parent.head.document.images['aktive_23'].src = 'images/aktive_23_verein.jpg';
                           parent.head.document.images['aktive_25'].src = 'images/aktive_25_verein.jpg';
                           parent.head.document.images['aktive_27'].src = 'images/aktive_27_verein.jpg';
                           parent.head.document.images['aktive_17'].src = 'images/aktive_17_verein.jpg';
                         }
                       }

                    Was steht in der JS-Konsole?
                    immer noch nichts

                    Grüße OLLI