amano[fR]: geschachtelte frames + java

mOIn,

kurze frage hab da so vier ineinander geschachtelte frames (index.html=framset, main.html=frameset, menu.html=frames)und möchte wenn eine seite im 'main' bereich angezeigt wird auch gleich das menu wechselen.
Hab das so versucht
----
<script type="text/javascript">
<!--
function frame(URI,F) {
  frame=eval("parent."+F);
  frame.location.href = URI;
}
//-->
</script>

<a href="javascript:frame('index.html','leftmenu')">TEST</a>
----

geht aber nicht weil ich mich ja selber im framset 'main.html' befinde und versuch auf was in 'menu.html' zu verweisen.
Wie geht das??

danke amano

  1. originell:

    mOIn,

    geht auch MoiN ??

    kurze frage hab da so vier ineinander geschachtelte frames (index.html=framset, main.html=frameset, menu.html=frames)und möchte wenn eine seite im 'main' bereich angezeigt wird auch gleich das menu wechselen.

    Das liest sich, als wärs eine der "ach-nicht-schon-wieder"-Fragen. Schau mal nach, ob dir http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm weiterhilft

    Grüße aus Berlin

    Christoph S.

    1. originell:

      mOIn,

      geht auch MoiN ??

      kurze frage hab da so vier ineinander geschachtelte frames (index.html=framset, main.html=frameset, menu.html=frames)und möchte wenn eine seite im 'main' bereich angezeigt wird auch gleich das menu wechselen.

      Das liest sich, als wärs eine der "ach-nicht-schon-wieder"-Fragen. Schau mal nach, ob dir http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm weiterhilft

      Grüße aus Berlin

      dank dir

      das ist ansicht genau das, was ich scuhte. nur das ich (noch) kein java-script kann :->>. also werd ichs mir wohl endlich zu gemüte führen müssen

      dennoch danke

      auch grüße aus berlin

      catty

      1. Ups, das hier sollte einen Beitrag weiter unten sein ;-)

    2. originell:

      mOIn,

      geht auch MoiN ??

      kurze frage hab da so vier ineinander geschachtelte frames (index.html=framset, main.html=frameset, menu.html=frames)und möchte wenn eine seite im 'main' bereich angezeigt wird auch gleich das menu wechselen.

      Das liest sich, als wärs eine der "ach-nicht-schon-wieder"-Fragen. Schau mal nach, ob dir http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm weiterhilft

      Grüße aus Berlin

      Christoph S.

      also wenn sollte man auch die wichtigen sachen von der eigendlichen post drin lassen und die war...

      Hab das so versucht
      ----
      <script type="text/javascript">
      <!--
      function frame(URI,F) {
        frame=eval("parent."+F);
        frame.location.href = URI;
      }
      //-->
      </script>

      <a href="javascript:frame('index.html','leftmenu')">TEST</a>
      ----

      das ist am end genau die funktion von der du da sprichts nur für einen frame das eigendliche problem entsteht ja durch ganz was anderes dadurch das ich mehrere FRAMESETS ineinander verschalchtel, und die funktion eval dann die objectnamen nicht mehr auflösen kann... denke ich bin halt keine java experte.

      macht aber nix ;),
      thx anyway bye

      1. tach ;-)

        also wenn sollte man auch die wichtigen sachen von der eigendlichen post drin lassen und die war...

        Hab das so versucht

        <script type="text/javascript">
        <!--
        function frame(URI,F) {
          frame=eval("parent."+F);
          frame.location.href = URI;
        }
        //-->
        </script>

        <a href="javascript:frame('index.html','leftmenu')">TEST</a>

        und ich hab das deswegen weggelassen, weil es wahrscheinlich richtig falsch ist. Nach deinem posting gehts dir doch um richtige Framesets; aber was du hier versuchst, ist das "Abdelegieren" eines Frames, für das nicht einmal ein Frameset vorgegeben ist, an eine URI. Das ist zwar nicht völlig unmglich, kann aber so nicht funktionieren. Du willst zum Beispiel mit
        javascript:frame('index.html','leftmenu')"
        einen Befehl aufgerufen, für denm es den Bestandteil 'leftmeu' in deinem Code gar nicht gibt.

        Insgesamt scheint dir gar nicht klar zu sein, wo Javascript und wie es eingesetzt werden kann ... auch bei solchen Fragen, wie du sie hast. Dir scheint auch nicht klar zu sein, daß Javascript überhaupt nichts mit Java zu tun hat

        das ist am end genau die funktion von der du da sprichts nur für einen frame das eigendliche problem entsteht ja durch ganz was anderes dadurch das ich mehrere FRAMESETS ineinander verschalchtel

        Wieviele Framesets du definierst, ist völlig wurscht, "parent" ist immer das oberste. Außerdem mußt du deinen Frames auch noch Namen geben, wenn du auf sie verlinken willst, und sobald ein Frame einen Namen hat, ist es ziemlich egal, in welchem Frameset das gute Stück liegt. Wichtig ist lediglich, daß sich alles im selben HTML-Dokument befindet (obwohl man natürlich auch zu Frames in anderen Framesets bzw. anderen HTML-Dokumenten verlinken kann).

        Am besten, du liest nochmal gründlich das Kapitel über Frames in SELFHTML nach.

        Christoph S.

        1. Moin

          Wieviele Framesets du definierst, ist völlig wurscht, "parent" ist immer das oberste.

          Wie war das grad mit 'richtig falsch'? :)

          parent heisst natürlich das Frame das eine Ebene höher als das aktuelle liegt, das oberste heisst top.

          Es steht zwar nicht in Selfhtml ausdrücklich erwähnt, aber bei allen meinen Versuchen hat es bei verschachtelten Frames gereicht   top.namedesframes   anzusprechen, was dann schon gleich das richtige Frame anspricht, egal wie tief verschachtelt. Du brauchst also bloss allen deinen Frames Namen geben, das parent in deinem Code durch ein top zu ersetzen und im Prinzip müsste es dann gehen. Falls nicht, musst du der Objekthierarchie folgen und sowas wie   top.obersterframe1.unterframe2.unterunterframe1 ansprechen.

          --
          Henryk Plötz
          Grüße aus Berlin

          1. hm, Henryk,

            ich gebe zu, da fehlen drei Wörter:

            Wieviele Framesets du definierst, ist völlig wurscht, "parent" ist immer das oberste.

            Da hätte ich korrekt schreiben müssen: " ... ist immer das oberste des aktuellen Framesets"  -  siehe http://www.w3.org/TR/html4/types.html#type-frame-target

            parent heisst natürlich das Frame das eine Ebene höher als das aktuelle liegt, das oberste heisst top.

            siehe der link oben

            Es steht zwar nicht in Selfhtml ausdrücklich erwähnt, aber bei allen meinen Versuchen hat es bei verschachtelten Frames gereicht   top.namedesframes   anzusprechen, was dann schon gleich das richtige Frame anspricht, egal wie tief verschachtelt.

            Mit "top" gehst du erstmal ganz raus aus der "Rahmenkonstruktion", und mit "namedesframes" gehst du wieder rein  -  und zwar zu dem namentlich spezifizierten Rahmen, egal, wie tief er in der Rahmenhierarchie verschachtelt ist.

            Du brauchst also bloss allen deinen Frames Namen geben, das parent in deinem Code durch ein top zu ersetzen und im Prinzip müsste es dann gehen.

            Kann passieren, daß das doch nicht klappt, je nachdem, wie die Verschachtelung aussieht. Die Namensgebung ist allerdings essentiell

            Falls nicht, musst du der Objekthierarchie folgen und sowas wie   top.obersterframe1.unterframe2.unterunterframe1 ansprechen.

            leichter ist es, stattdessen "Nummern" zu vergeben. In der Art:
            parent.frames[0].location.href = irgendwas

            Grüße auch aus Berlin

            Christoph S.