Monika: Bilderwechel in anderem Frame

Liebe Forengemeinde,

als totaler JS-Anfänger wende ich mich hilfesuchend an Euch, mit der Bitte um Hilfe, weil ich schon nahe am verwzeifeln bin:

Ich möchte gerne ein Bild in einem Frame über einen Textlink ändern. In einem "normalen" Datei funktioniert es, aber was muss ich bitte ändern, wenn ich ein Bild ändern möchte, dass sich in einem anderen Frame befindet?

Hier mein (bisheriger) Code:

.............
<html>
<head>

<script language="JavaScript">
<!--
var Banner_00 = new Image();
 Banner_00.src="topbar_markets.jpg";
var Banner_01 = new Image();
 Banner_01.src="topbar_services.jpg";
//-->
</script>

</head>

<body>

<img src="topbar_markets.jpg" name="Banner">

<a onclick="Banner.src=Banner_00.src" a href="#"><font color="#000000">Markets</font></a>
<a onclick="Banner.src=Banner_01.src" a href="#"><font color="#000000">Services</font></a>

</body>
</html>
.............

Herzlichen Dank für Eure Unterstützung!

Liebe Grüße,
Monika

  1. Moin,

    Ich möchte gerne ein Bild in einem Frame über einen Textlink ändern. In einem "normalen" Datei funktioniert es, aber was muss ich bitte ändern, wenn ich ein Bild ändern möchte, dass sich in einem anderen Frame befindet?

    das machst Du, indem Du in der Bildansprache noch die Frame-Ansprache integriest, siehe hier:

    http://de.selfhtml.org/javascript/objekte/frames.htm

    Schönen Gruß,

    Mike

    1. Hallo Mike,

      wenn ich das so einfach könnte, hätte ich wahrscheinlich nicht hier um Hilfe suchen brauchen. Es ist mir schon klar, dass ich hier etwas ändern muss, aber leider ist es mir zu wenig klar, wie und wo ich was zu ändern habe.
      Nachdem ich eine totale Niete in JS bin, hilft mir leider auch der Link nicht weiter.

      das machst Du, indem Du in der Bildansprache noch die Frame-Ansprache integriest, siehe hier:

      http://de.selfhtml.org/javascript/objekte/frames.htm

      Kannst Du mir bitte eine "genauere" Anleitung bezogen auf meinen Code geben?

      Vielen lieben Dank!!

      Liebe Grüße,
      Monika

      1. Moin Monika,

        Kannst Du mir bitte eine "genauere" Anleitung bezogen auf meinen Code geben?

        ich anempfehle Dir, eine Funktion für den Bildwechsel zu benutzen, eben diese aus Selfhtml:

        http://de.selfhtml.org/javascript/beispiele/buttons.htm

        Die ist ja auch simpel und frisst nicht viel mehr Speicher als Deine Variante:

        function Bildwechsel (Bildnr, Bildobjekt) {
          window.document.images[Bildnr].src = Bildobjekt.src;
        }

        Hier fügst Du dann die Frameansprache vor "document.images...." und dann klappt es.

        Schönen Gruß,

        Mike

        1. Hi Mike,

          habe in der Zwischenzeit selbst noch ein wenig herumgebastelt und es auch geschafft:

          -------------
          <html>
          <head>

          <script language="JavaScript">
          <!--
          var Banner_00 = new Image();
           Banner_00.src="topbar_markets.jpg";
          var Banner_01 = new Image();
           Banner_01.src="topbar_services.jpg";
          //-->
          </script>
          </head>

          <body>

          <img src="topbar_markets.jpg" name="Banner">

          <a onClick="parent.frames['Oben'].Banner.src=Banner_00.src" a href="#">Markets</a>
          <a onClick="parent.frames['Oben'].Banner.src=Banner_01.src" a href="#">Services</a>

          </body>
          </html>
          --------------

          Wobei ich hier auch in der Frameseite 'oben' den Script rein schreiben muss.
          Was meinst Du - spricht etwas gegen diese "Lösung" oder soll ich mich noch mit Deinem Vorschlag auseinander setzen?

          Herzlichen dank!

          Liebe Grüße,
          Monika

          1. Moin,

            habe in der Zwischenzeit selbst noch ein wenig herumgebastelt und es auch geschafft:

            [...]

            Was meinst Du - spricht etwas gegen diese "Lösung" oder soll ich mich noch mit Deinem Vorschlag auseinander setzen?

            ich würde sagen, es spricht eher noch was gegen meinen Vorschlag, da Du mit Deiner Lösung sogar noch etwas effizienter am Start bist!

            Kurz gesagt: Tolle Lösung, werd ich mir merken!

            Schönen Gruß,

            Mike

          2. Hi,

            <a onClick="parent.frames['Oben'].Banner.src=Banner_01.src" a href="#">Services</a>

            Du muss hier noch ein "return false" ins onclick anfuegen (Semikolon separiert), um die eigentliche Linkreaktion zu verhindern. Andernfalls musst Du mit seltsamen Effekten (Daueruhr, stehenbleibende Animationen, Nichtausfuehren der Aktion...) rechnen.
            Wenn Du die Referenz kuerzen moechtest, es reicht: parent.Oben.Banner...

            Gruesse, Joachim

            --
            Am Ende wird alles gut.
            1. Hallo,

              <a onClick="parent.frames['Oben'].Banner.src=Banner_01.src" a href="#">Services</a>
              Wenn Du die Referenz kuerzen moechtest, es reicht: parent.Oben.Banner...

              Nö. Die kürzeste Form wäre:
              parent.Oben.document.Banner...

              viele Grüße

              Axel

              1. Hi,

                parent.Oben.document.Banner...

                ja natuerlich, sofern "Banner" der Name des Bildes ist.

                Gruesse, Joachim

                --
                Am Ende wird alles gut.
                1. parent.Oben.document.Banner...
                  ja natuerlich, sofern "Banner" der Name des Bildes ist.

                  Davon ist auszugehen, das Problem war, das bei deinem Vorschlag das 'document' gefehlt hat.

                  Struppi.

                  1. Hi,

                    das Problem war, das bei deinem Vorschlag das 'document' gefehlt hat.

                    Habe ich in letzter Zeit soviel Muell gepostet, dass Du mir diese Erkenntnis nicht mehr zutraust?
                    ;-)

                    Die Einschraenkung bezog sich lediglich auf die Moeglichkeit, dass "Banner" bereits eine Referenz, und nicht nur den Bildnamen beeinhaltet.

                    Gruesse, Joachim

                    --
                    Am Ende wird alles gut.
                    1. das Problem war, das bei deinem Vorschlag das 'document' gefehlt hat.
                      Habe ich in letzter Zeit soviel Muell gepostet, dass Du mir diese Erkenntnis nicht mehr zutraust?
                      ;-)

                      Öhm, eigentlich nicht aber...

                      Die Einschraenkung bezog sich lediglich auf die Moeglichkeit, dass "Banner" bereits eine Referenz, und nicht nur den Bildnamen beeinhaltet.

                      Soweit hatte ich nicht gedacht, war aber bisher auch nicht zu sehen, da die Referenzen mit Banner_00 und Banner_01 schon benannt waren.

                      Struppi.

          3. Hallo,

            <img src="topbar_markets.jpg" name="Banner">

            <a onClick="parent.frames['Oben'].Banner.src=Banner_00.src" a href="#">Markets</a>

            Was soll das einzelne "a" dort?

            In welchen Browsern wurde das getestet?

            parent.frames['Oben'] gibt ein window Objekt zurück. Banner ist ein namedItem der images-Collection. Die images-Collection ist aber nicht in window, sondern in document zu finden.

            <a onClick="parent.frames['Oben'].document.Banner.src=Banner_00.src" href="#">Markets</a>

            oder ausführlich:

            <a onClick="parent.frames['Oben'].document.images['Banner'].src=Banner_00.src" href="#">Markets</a>

            http://de.selfhtml.org/javascript/objekte/images.htm#allgemeines

            viele Grüße

            Axel