tropos: mehrere frames mit einem link ansprechen

hallo!
ich habe mit folgendem script mehrere frames geändert:

<script language="JavaScript">
  <!--
/* mit diesem script kann man bewirken, daß sich mit einem Mausklick der Inhalt
     zweier Frames gleichzeitig ändert. */
     <!--
      function ZweiFrames(URL1,F1,URL2,F2)
      {
       parent.frames[F1].location.href=URL1;
       parent.frames[F2].location.href=URL2;

}
// -->
  </script>

der link sieht nun so aus:
<a href="javascript:ZweiFrames('navigationrechts3.html',1, 'navigationunten3.html',2)" ....

nun kommt mein problem:

ich will noch einen dritten frame ansprechen, nur befindet der sich in einem übergeordneten frameset. wie muss ich denn den pfad im script eingeben, damit das funktioniert? funktioniert das überhaupt?

vielen dank. tropos.

  1. hi,

    ich habe mit folgendem script mehrere frames geändert:

    Gut, du ersparst dir das "Jehova", indem du zu erkennen gibst, daß dir das SELFHTML-Beispiel bekannt ist.

    <script language="JavaScript">

    Das ist fehlerhafter Code. Korrekt wäre:
      <script type="javascript">

    der link sieht nun so aus:
    <a href="javascript:ZweiFrames('navigationrechts3.html',1, 'navigationunten3.html',2)" ....

    Und das kann eigentlich nicht funktionieren, mal abgeshen davon, daß es ebenfalls fehlerhafter Code ist. Korrekt(er) wäre:
      <a href="#" onclick="ZweiFrames('datei1.htm','Framename1','datei2.htm','Framename2')">linktext</a>
    Du hättest das SELFHTML-Beispiel nur etwas weiterlesen brauchen.

    ich will noch einen dritten frame ansprechen

    Nichts hindert dich daran. Der Ansatz sieht so aus:
      function DreiFrames(URL1,F1,URL2,F2,URL3,F3)
    usw, den Rest kannst du dann selber.

    Grüße aus Berlin

    Christoph S.

    1. ups...

      Das ist fehlerhafter Code. Korrekt wäre:
        <script type="javascript">

      Swoas aber auch. Korrekt wäre selbstverständlich:
        <script type="text/javascript">

      Christoph S.

      Grüße aus Berlin

      Christoph S.

    2. hallo.
      danke für die prompte antwort.
      1. ich hab das selfhtml beispiel garnicht gelesen. den code hat mir ein freund gemailt. kannst mir aber gerne mal den lnk dazu posten.
      2. das script funktioniert so wies dasteht tatsächlich. frag nicht warum. wie man sicherlich merkt bin ich kein experte.
      3. meine frage war eigentlich wie ich einen frame in einem ÜBERGEORDNETEN frameset ansprechen kann. dass das ganze mit function DreiFrames(URL1,F1,URL2,F2,URL3,F3) weitergeht ist klar, nur befindet sich das frameset in dem der button liegt wiederum in einem frame. in dem frameset dieses frames befindet sich URL3. also muss ich da irgendeinen anderen pfad angeben, oder so. parent wirds wohl nicht sein, denk ich...

      dankeschön. tropos.

      1. hi,

        parent wirds wohl nicht sein

        Nein. Versuchs mal mit "top".

        Grüße aus Berlin

        Christoph S.

        1. geht nicht. oder ich weiss nicht so richtig, wie ichs einsetzen soll.
          kannst dir das ding auch gerne mal angucken. unter:
          http://www.uni-kassel.de/~barthelm/dokfest/

          auf den schriftzug klicken. dann siehst du oben die menueleiste. klick auf einen button ändert das bild rechts oben + die meunue leiste selbst. soll aber das inhaltsfenster drunter auch ändern.
          (da wo inhaltinhaltinhalt steht)
          ich hab da also ein frameset. ober menue, mitte inhalt, unten nochma ne leiste. der obere frame mit dem menue beinhaltet auchn frameset. titel links oben, bild rechts, buttons unten-> da drin liegt dieses javascript zeuch. und das soll die inhaltsseite von dem grossen frameset mitsteuern.

          schönen dank auch. tropos.

          1. hi,

            geht nicht.

            Nana.

            oder ich weiss nicht so richtig, wie ichs einsetzen soll.

            Das schon eher

            kannst dir das ding auch gerne mal angucken. unter:
            http://www.uni-kassel.de/~barthelm/dokfest/

            Die korrekte Adresse wäre http://www.uni-kassel.de/~barthelm/dokfest/htmlframes/navigationunten.html
            und du hast zum Beispiel so etwas jetzt drinstehen:
              <a href="javascript:DreiFrames('navigationrechts2.html',1, 'navigationunten2.html',2)">
            Schau dir bitte nochmal an, was ich dir vorhin geschrieben hatte, beachte dabei insbesondere das "quoting". Im übrigen hast du deutlich mehr als lediglich drei Frames, diese Konstruktion solltest du auf Notwendigkeit überprüfen.
            Bei dem optischen Eindruck, den deine Seite erreichen soll, ist auch zu überlegen, ob du dafür überhaupt Frames brauchst. Ich würde dafür Layer (DIV's) einsetzen.

            Das größere Problem ist, daß die gesamte Seite als popup aufgerufen wird. Dadurch können bei deiner tief verschachtelten Struktur noch mehr Probleme entstehen, außerdem würde ich "normalerweise" (weil ich popups disableds habe) von deiner Seite gar nichts zu sehen bekommen.

            Grüße aus Berlin

            Christoph S.

            1. parent wirds wohl nicht sein

              Nein. Versuchs mal mit "top".

              hab ich versucht.
              top statt parent?
              wie muss ich das top einsetzen?
              klar hab ich mehr als 3 frames. hab ich auch geschrieben.
              ich hab drei frames. und in dem einen der drei sind wiederum drei.
              deshalb hab ich dir auch den gesamtansicht link geschickt, damit klar wird wie das ding aufgebaut ist. logo kann mans auch anders machen.
              sicher isses auch nicht so schlau. aber hätte ja sein können dass das mit dem richtigen pfad kein ding ist.
              mich hätts grundsätzlich mal interessiert wie man frames durch die hierarchien anspricht.

              besten dank. tropos.

              1. hallo nochmals,

                top statt parent?
                wie muss ich das top einsetzen?

                top.framename.location.href = "datei.htm"

                ich hab drei frames. und in dem einen der drei sind wiederum drei.

                Das sind zusammen sechs.

                sicher isses auch nicht so schlau. aber hätte ja sein können dass das mit dem richtigen pfad kein ding ist.

                Ist es auch nicht, wenn du dir meine Antworten genau anschaust. Nochmal zur Verdeutlichung: ich habe dir geraten zu
                  <a href="#" onclick="ZweiFrames('datei1.htm','Framename1','datei2.htm','Framename2')">linktext</a>
                Und du hast bisher daraus gemacht:

                <a href="javascript:ZweiFrames('navigationrechts3.html',1, 'navigationunten3.html',2)"

                Siehst du es jetzt ? Es gibt in deiner gesamten Framekonstruktion kein einziges Frame mit dem _Framenamen_ "1" oder "2". Und die Framenamen bitte auch in die '' einschließen (das ist das sogenannte "Quoting").

                Grüße aus Berlin

                Christoph S.

                1. so in der art? funktioniert noch nicht aber viell. kannst du ja noch mal drüber kucken.

                  <script type="text/javascript">
                    <!--
                  /* mit diesem script kann man bewirken, daß sich mit einem Mausklick der Inhalt
                       dreier Frames gleichzeitig ändert. */
                       <!--
                        function DreiFrames(URL1,F1,URL2,F2,URL3,F3)
                        {
                         parent.frames[F1].location.href=URL1;
                         parent.frames[F2].location.href=URL2;
                         top.frames[F3].location.href=URL3;
                        }
                  // -->
                    </script>

                  <a href="#"
                  onclick="DreiFrames('navigationrechts2.html','navigationrechts','navigationunten2.html','navigationunten','info.html','content')">linktext</a>

                  1. hallo,

                    so in der art?

                    Jawohl, _prinzipiell_ genau in der Art, wie du es jetzt andeutest.

                    funktioniert noch nicht

                    Dann schau dir das offline mal im mozilla an  -  da gibts eine Javascript-Konsole, die dir ziemlich präzise Fehlermeldungen liefert. Und sonst: Tobias hat dir vorhin den link zu einem für dein Problem sehr hilfreichen Artikel angegeben. Den solltest du dir auch mal durchlesen.

                    Grüße aus Berlin

                    Christoph S.

                    1. cool. nu klappt das
                      danke euch ;)

                      'tropos.

                  2. hallo,

                    Da ich bisher davon ausgegangen bin, daß du dir http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm durchgelesen hast, habe ich auf ein sehr wichtiges Detail noch nicht aufmerksam gemacht:

                    function DreiFrames(URL1,F1,URL2,F2,URL3,F3)
                          {
                           parent.frames[F1].location.href=URL1;
                           parent.frames[F2].location.href=URL2;
                           top.frames[F3].location.href=URL3;
                          }

                    Das ist zwar prinzipiell richtig, aber nicht genug.  Dein Script kann die Namen "URLx" bzw. "Fx" noch nicht verstehen bzw. den im link später verwendeten Frame- und Dateinamen zuordnen. Dazu brauchst du außerdem noch "eval()", was in die Funktion zusätzlich eingebaut werden muß, wie du es auf der obengenannten Adresse sehr schön beschrieben findest.

                    Christoph S.

              2. Hallo tropos,

                mich hätts grundsätzlich mal interessiert wie man frames durch die hierarchien anspricht.

                vielleicht hilft dir http://aktuell.de.selfhtml.org/tippstricks/javascript/fensterzugriff/index.htm?

                Grüße aus Nürnberg
                Tobias

                --
                Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|