Mischa: Frameseiten-Verweis bei zwei (oder mehr) Framesets - möglich?

Hallo!

Ich habe mal wieder ein klitzekleines Problem, worauf ich in SelfHTML keine Antwort finden kann:

Wenn ich auf eine bestimmte Frameseite innerhalb eines Framesets verweisen möchte, kann man das mit JavaScript wie im SelfHTML-Besipiel angegeben realisieren (http://selfaktuell.teamone.de/artikel/javascript/dyn-frames/index.htm). Mein Problem ist nun aber, dass ich auf meiner Seite zwei verschachtelte Framesets verwendet habe.

Das bedeutet, dass - wenn ich den Link der jeweiligen Frameseite öffne - zunächst das erste Hauptframeset geladen werden soll und danch innerhalb eines Frames dieses Sets ein weiteres Framesets, in dem dann wiederum in einem Frame die gewünschte Seite geladen wird.

Um das nochmal grafisch zu verdeutlichen (ich hoffe mal, dass die Leerzeichen, die ich gesetzt habe, von diesem Forum nicht auf eines reduziert werden, sonst könnt ihr die "Grafik" natürlich komplett vergessen!):

+-----------+---------------------------------------------+
|           |                                             |
|   1A      |    1B                                       |
|           |                                             |
|           |                                             |
+-----------+-------+-------------------------------------+
|           |  2A   |  2B                                 |
|   1C      |       |                                     |
|           +-------+-------------------------------------|
|           |  2C   |  2D                                 |
|           |       |                                     |
|           |       |                                     |
|           |       |                                     |
|           |       |                                     |
|           |       |                                     |
|           |       |                                     |
|           |       |                                     |
+-----------+-------+-------------------------------------+

Zum Hauptframeset 1 der Page gehören die Frames: 1A, 1B, 1C und 1D,
wobei 2A, 2B, 2C und 2D zusammen das untergeordnete Frameset 2 ergeben, welches im Frame 1D des Framesets 1 geladen werden soll.
Klar, was ich meine? Wenn ja: Gibt's da irgend 'ne Möglichkeit, das mit Hilfe von JS so ähnlich wie bei einem einfachen Frameset hinzubekommen oder ist das mit JS nicht realisierbar - sprich: unmöglich?

Danke für Eure Hilfe,
Mischa (Cpt. Karl)

  1. Hi Mischa,

    vor dem gleichen Problem stand ich auch.. das Problem ist aber sehr einfach zu loesen:

    1. um alle browser zu unterstuetzen, musst du jedes Frameset in eine einzelne Datei speichern, also keine verschachtelten Framesets innerhalb einer Datei.

    2. das script umaendern:
      wenn ich das richtig sehe, hast du einige framesets..

    das orginalscript:
    function ZweiFrames(URI1,F1,URI2,F2) {
      Frame1=eval("parent."+F1);
      Frame2=eval("parent."+F2);
      Frame1.location.href = URI1;
      Frame2.location.href = URI2;
    }

    das musst du dann wie folgt umaendern, je nach dem, wie viele ebenen tiefer der frame liegt, den du ansprechen willst (wahrscheinlich wirst du mehr als 2 frames gleichzeitig aendern, oder ?
    ich nenne in diesem beispiel die datei, in der das erste frameset, dass dem frameset, in dem das menue ist, untergeordnet ist, index2:

    function ZweiFrames(URI1,F1,URI2,F2) {
      Frame1=eval("parent.index2."+F1);
      Frame2=eval("parent.index2"+F2);
      Frame1.location.href = URI1;
      Frame2.location.href = URI2;
    }

    so sprichst du frames in dem naechst "tiefer" gelegenem Frameset an. Wenn sich nun nochmal ein Frameset im Frameset von index2 befindet, (ich nenne die datei mit dem Frameset unkreativerweise mal index3) so musst du dieses wiederrum ansprechen, indem du im Script eine Ebene tiefer gehen tust:

    function ZweiFrames(URI1,F1,URI2,F2) {
      Frame1=eval("parent.index2.index3."+F1);
      Frame2=eval("parent.index2.index3"+F2);
      Frame1.location.href = URI1;
      Frame2.location.href = URI2;
    }

    usw...

    Ich hoffe, ich konnte dir helfen, wenn das etwas unverstaendlich war, dann poste doch einfach mal dein frameset, dann ist es konkreter

    MFG

    Philipp

    1. Hallo, Philipp!

      vor dem gleichen Problem stand ich auch.. das Problem ist aber sehr einfach zu loesen:

      so einfach sieht's gar nicht aus! (zumindest nicht für jemanden, der noch nicht so viel mit JS zu tun gehabt hat) ...

      1. um alle browser zu unterstuetzen, musst du jedes Frameset in eine einzelne Datei speichern, also keine verschachtelten Framesets innerhalb einer Datei.

      Das ist bei mir bereits der Fall.

      1. das script umaendern:
        wenn ich das richtig sehe, hast du einige framesets..

      Nö, nö, sind nur zwei... ;-)

      das orginalscript:
      function ZweiFrames(URI1,F1,URI2,F2) {
        Frame1=eval("parent."+F1);
        Frame2=eval("parent."+F2);
        Frame1.location.href = URI1;
        Frame2.location.href = URI2;
      }

      Wo hast du denn dieses "Originalscript" her? Es ist nicht von der Seite, die ich angegeben hatte, oder?

      das musst du dann wie folgt umaendern, je nach dem, wie viele ebenen tiefer der frame liegt, den du ansprechen willst (wahrscheinlich wirst du mehr als 2 frames gleichzeitig aendern, oder ?
      ich nenne in diesem beispiel die datei, in der das erste frameset, dass dem frameset, in dem das menue ist, untergeordnet ist, index2:

      function ZweiFrames(URI1,F1,URI2,F2) {
        Frame1=eval("parent.index2."+F1);
        Frame2=eval("parent.index2"+F2);
        Frame1.location.href = URI1;
        Frame2.location.href = URI2;
      }

      so sprichst du frames in dem naechst "tiefer" gelegenem Frameset an. Wenn sich nun nochmal ein Frameset im Frameset von index2 befindet, (ich nenne die datei mit dem Frameset unkreativerweise mal index3) so musst du dieses wiederrum ansprechen, indem du im Script eine Ebene tiefer gehen tust:

      ACHSO!! Jetzt weiß ich, was du meinst!!! Das ist zwar auch 'ne ganz interessante Fragestellung mit dem gleichezeitigen Ändern von zwei Frames migt einem Link, aber das ist gar nicht mein Problem!!!
      Schau dir diese Seite hier nochmal an (hast du noch nicht, oder?):
      http://selfaktuell.teamone.de/artikel/javascript/dyn-frames/index.htm
      Ich möchte dass, wenn ich zum Beispiel den direkten Link auf die Seite "http://www.xyz.de/Hauptverzeichnis/unterseite1.html" ins Browser-Adressfeld eingebe, dass dann die gewünschte Seite nicht einfach so, sondern auf jeden Fall im übergeordneten (bzw. in meinem Fall in den übergeordneten) Frameset(s) angezeigt wird - so, als würde man durch einen Link im Navigationsframe auf die Seite gekommen sein!

      function ZweiFrames(URI1,F1,URI2,F2) {
        Frame1=eval("parent.index2.index3."+F1);
        Frame2=eval("parent.index2.index3"+F2);
        Frame1.location.href = URI1;
        Frame2.location.href = URI2;
      }

      usw...

      Ich hoffe, ich konnte dir helfen, wenn das etwas unverstaendlich war, dann poste doch einfach mal dein frameset, dann ist es konkreter

      Tut mir leid, dass du dir soviel Mühe gemacht hast und mir dabei trotzdem nicht weiterhelfen konntest. Danke aber trotzdem für diesen sehr umfangreichen (und wenn's mein Problem gewesen wäre auch sehr sehr hilfreichen) Beitrag.

      Gruß,
      Mischa (Cpt. Karl)

      ----------------------------
      PS: Achja: Du weißt nicht zufällig auch noch eine Lösung für "MEIN" Problem? :-)

      1. hehe,

        da bin ich ja voll danebengelegen... Haette ich mir den Link nur genauer angeschaut... ansonsten hat irgendwie alles, was du so geschrieben hast, sehr gut zu dem gepasst, auf was ich geantwortet habe... Tja, ich hatte vorhin Fahrschule, und ich war halt noch im Langeweilekoma, als ich die Antwort schrieb ;)

        MFG

        Philipp

        1. hehe,

          da bin ich ja voll danebengelegen... Haette ich mir den Link nur genauer angeschaut... ansonsten hat irgendwie alles, was du so geschrieben hast, sehr gut zu dem gepasst, auf was ich geantwortet habe... Tja, ich hatte vorhin Fahrschule, und ich war halt noch im Langeweilekoma, als ich die Antwort schrieb ;)

          Naja, danke aber trotzdem - du hast dir ja sehr viel Mühe gemacht und das ist für so ein User-hilft-User-Forum das Wichtigste überhaupt!

          Gruß,
          Mischa