Jenny: Variablenwerte definieren

Hallo da draußen,
ich habe ein kleines Problemchen, für das ich keine Antwort gefunden habe. Ich möchte einer Variable im Frameset einen Wert übergeben, der sich aus Eigenschaften eines Framefenster ergibt. Mein Hauptaugenmerk liegt dabei auf 'x=parent.frames[1].location.href.src' aber auch bei anderen Beispielen bin ich zu keinem Ergenis gekommen. Wie macht man das?

Danke schonmal
Jenny

  1. Hä???

    Jenny,

    a) post doch etwas CODE

    b) und formuliere Dein Problem etwas verständlicher

    c) dann werden Sie bestimmt geholfen ...

    Grüße, Martin

    1. Hallo!

      Well, ich werde versuchen, die Sache verständlicher zu machen. Ich habe eine Seite mit verschiedenen Frames, in denen Gif-Grafiken als Links vorkommen. Diese will ich dynamisch verändern. D.h. nachdem eine Grafik angeklickt wurde, soll die nächste erscheinen, die wiederum einen neuen Link darstellt. Im Frameset will ich dann abfragen, welche Grafik angeklickt wurde, um die entsprechenden Link-Zielseite aufzurufen. Wird in den Frames eine Grafik angeklickt, wird durch
      'onklick="parent.frames.irgendwas(framenummer)"'
      die JS-Funktion im Frameset aktiv. Innerhalb dieser will ich die "switch-function" benutzen, um die entsprechenden Fälle zu überprüfen.

      <script language="JavaScript">
      var giflink = "";
      function irgendwas(quelle)
        {
         giflink = parent.frames[quelle].document.images[0].src;   <--der problematische Befehl-->
         switch (giflink)
          {
           case "Grafik1":
           parent.frames[2].location.href = "Grafik.html";
           parent.frames[quelle].document.images[0].src = "Grafik2.gif";
           break;
      .
      .
      .
           break;
          }
        }
      </script>

      Ich hoffe die Erklärung war verständlich und Ihr könnt mir helfen.
      Tschüß
      Jenny

      1. Hi Jenny,

        so ganz hab ich's noch net - liegt vieleicht auch an mir...
        Well, ich versuche, zu antworten.

        <ORIGINAL>
        1. Ich habe eine Seite mit verschiedenen Frames, in denen Gif-Grafiken als Links vorkommen. Diese will ich dynamisch verändern. D.h. nachdem eine Grafik angeklickt wurde, soll die nächste erscheinen, die wiederum einen neuen Link darstellt. Im Frameset will ich dann abfragen, welche Grafik angeklickt wurde, um die entsprechenden Link-Zielseite aufzurufen.

        2. Wird in den Frames eine Grafik angeklickt, wird durch

        'onklick="parent.frames.irgendwas(framenummer)"'
        die JS-Funktion im Frameset aktiv. Innerhalb dieser will ich die "switch-function" benutzen, um die entsprechenden Fälle zu überprüfen.

        Zu 1: Es klingt so, als ob Du ein Rollover machen willst, allerdings hierbei auch noch gleich den Link ändern möchtest. Da würde ich einfachsten zwei DIVs, die nach dem Klick versteckt bzw. angezeigt werden.

        Folgendes habe ich gerade mal ausprobiert (IP5.5, NN4.73) und zeigt eine mögliche Lösung (die Images musst Du natürlich einsetzen):

        <html>
        <head>
        <title>Untitled</title>
        </head>
        <script language="JavaScript">
        <!--
        function SwitchLink(toHide,toShow)
        {
        this.css1 = (document.layers) ? eval('document.layers["' + toHide+ '"]'):eval('document.all.'+ toHide+'.style');
        this.css2 = (document.layers) ? eval('document.layers["' + toShow+ '"]'):eval('document.all.'+ toShow+'.style');

        this.css1.visibility = 'hidden';
        this.css2.visibility = 'visible';
        }

        function ChangeFrame(F1,Url1)
        {
        parent.frames[F1].location.href=Url1;
        }
        //-->
        </script>

        <body>

        <div id="link1" style="position:absolute;top:20px;left:20px;visibility:visible;z-index:1;">
        <A HREF="http://www.web.de" onclick="javascript:SwitchLink('link1','link2')" target="_blank">Grafik1=Link1</A></div>
        <div id="link2" style="position:absolute;top:20px;left:20px;visibility:hidden;z-index:1;">
        <A HREF="http://www.lycos.de" onclick="javascript:SwitchLink('link2','link1')" target="_blank">Grafik2=Link2</A></div>
        </body>
        </html>

        das "target"-Attribut hatte ich nur eingefügt, weil ich kein Frameset definiert habe (muss ja sehen, ob die links wechseln).

        Zu 2:
        Eine Abfrage durch eine Funktion in der Frameset-Datei (oder wo auch immer), kannst Du dir sparen.

        Statt <A HREF="http://www.lycos.de" onclick...> schreibe <A HREF="javascript:ChangeFrame(Framenummer,'xxxx.html')" onclick...>.

        Wenn Du beide Funktionen noch in eine externe .js-Datei auslagerst, kannst Du von aallen Frames zugreifen.

        Ich hoffe a) ich habe Dich verstanden, und b) dass ich Dir helfen konnte.

        Grüße, Martin

        1. Hallo Martin,

          danke für Deine große Mühe, es ist aber leider nicht das, was ich benötige.
          Die Link-Grafik befindet sich in einem Frame und die 'gelinkte' Seite in einem anderen Frame. Der Ablauf soll so aussehen, dass die Grafik angeklickt wird, in einem anderen Frame der Inhalt angezeigt wird und die erste Grafik durch die nächste ersetzt wird.
          Mir ist wirklich nur wichtig zu wissen, wie ich die Dateinamen der Grafiken an eine Variable übergeben kann und zwar im Sinne des Befehls
          'var x = parent.frame[].document.images[0].src;'.

          Tschüß Jenny

          P.S: Nochmal Danke für die ausführlichen Erläuterungen.

  2. Hallo Jenny,

    Ich möchte einer Variable im Frameset einen Wert übergeben, der sich aus Eigenschaften eines Framefenster ergibt. Mein Hauptaugenmerk liegt dabei auf 'x=parent.frames[1].location.href.src' ...

    Ich hoffe, ich verstehe dich richtig: du willst aus einem Frame heraus die URL eines (anderen) Frames ändern?
    Vielleicht hilft dir das weiter: wenn du z.B. folgendes in Frame 1 einbaust, kannst du über ein Formular die URL von Frame 0 bestimmen (sollte auf allen gängigen Browsern funktionieren):

    --------------------------------------------------------------------------------------------------------
    <form action="javascript:url();" name="Formular" method="post">
    <input type="text" name="url" size="50">
    <input type="submit" value="neue URL fuer Frame 1">
    <script language="javascript">
    <!--
    function url() {
    var x = window.document.Formular.url.value;
    parent.frames[0].location.href = x;
    }
    //-->
    </script>
    </form>
    --------------------------------------------------------------------------------------------------------

    Wenn du etwas anderes suchst, gebe doch bitte genau an, welcher Variablen du aus welcher Eigenschaft einen Wert übergeben willst.

    Schöne Grüße,
    Anatol