Andreas Arnold: Nachladen von Frames nach Ausbrechen aus fremdem Frame

Ich benutze das nachfolgende Skript, um mein Navigationsframe nachzuladen, falls ein direkter Aufruf oder ein Aufruf in einem fremden Frame erfolgt.

http://selfaktuell.teamone.de/artikel/javascript/dyn-frames/index.htm

Ich bräuchte allerdings target="_top", um auch mitsamt des nachgeladenen Framesets aus dem fremden Frame ausbrechen zu können.

Kann mir jemand helfen, wie ich das target in das o.a. Java-Skript bekomme.

Vielen Dank für Eure Hilfe.

Viele Grüße,
Andreas

  1. Hallo!

    Schau Die mal den Link und die Quelltexte an:

    Da ist Dein Problemchen dabei :)

    fastix

    1. Der Link war fehlerhaft...

      fastix

        1. Hallo

          http://aktuell.de.selfhtml.org/artikel//javascript/dyn-frames/index.htm#a1

          Genau dieses Frame wollte ich ja einsetzen. Wenn allerdings meine content Seite innerhalb eines fremden Frames geladen wird, wird mein Navigationsframe leider innerhalb dieses Frames nachgeladen.

          Was ich irgendwie hinbekommen möchte, ist, dass meine Seiten aus dem fremden Frame ausbrechen und das Navigationsframe nachladen, wenn man es so will, sollte das Nachladen mit target=_top erfolgen.

          Grüße,
          Andreas

          1. Hallo Andreas

            Was ich irgendwie hinbekommen möchte, ist, dass meine Seiten aus dem fremden Frame ausbrechen und das Navigationsframe nachladen, wenn man es so will, sollte das Nachladen mit target=_top erfolgen.

            Genau das leistet das Script. Irgendwas hast Du falsch gemacht. Poste doch mal Deinen Code und die Frame-Definition.

            Viele Grüße
            Mathias Bigge

            1. Genau das leistet das Script. Irgendwas hast Du falsch gemacht. Poste doch mal Deinen Code und die Frame-Definition.

              Code der Frameset-Seite (default.htm):
              ...
              <SCRIPT language="JavaScript">
              <!--
               function checkFramecall() {
                var Adressanhang=location.search;
                if(Adressanhang)
                frames.content.location.href=Adressanhang.substring(1,Adressanhang.length);
               }
              //-->
              </SCRIPT>
              </head>
              <frameset rows="108,*" onLoad="checkFramecall()" frameborder="0" framespacing="0" border="0">
                      <noframes></noframes>
                      <frame src="html/nav/nav.htm" scrolling="no" name="nav" noresize>
               <frame src="html/content/start.php" noresize name="content">
              </frameset>
              ...

              Code der Content-Seite (muskelaufbau.php):
              ...
              <SCRIPT language="JavaScript">
              <!--
               function checkFrameset() {
                if(!parent.nav)
                 location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;
               }
              //-->
              </SCRIPT>
              </head>

              <body onLoad='checkFrameset()' leftmargin="0" topmargin="0" link="#000000" alink="#000000" vlink="#000000">
              ...

              Öffne ich die Content Seite direkt, läd sich das Framesetz nach. Wird es in einem fremden Frame geöffnet, läd es ebenfalls nach, nur leider innerhalb des fremden Frames.

              Beispiel:
              Wenn man auf http://www.bodysearch.de in das Forum geht und in der Suchfunktion nach "_self" suchen lässt, gelangt man über den ersten Link "Re_Trainingsdauer" auf ein Posting, das auf die Seite muskelaufbau.php verweist. Das Skript ist dort wie oben angegeben eingebaut.

              Vielleicht kann man es nachvollziehen, wenn man auch die Umgebung kennt.

              Vielen Dank.

              Grüße,
              Andreas

              1. location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;

                ----->>> ungetestet, deshalb zwei Versionen

                parent.frames.location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;

                oder

                window.location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;

                sollte gehen... Du musst dem Browser noch mitteilen, in welchem Frame er die Seite öffnen soll, sonst nimmt er halt die aktuelle.

                fastix

                1. Nachtrag: hättest Du den Quelltext auf meinen Seiten gelesen, dann hättest Du eigentlich drauf kommen müssen. Wozu schreibe ich die ganzen Kommentare..

                  Dein Script hätte dann so aussehen können:

                  test1=top.frames.length;
                  test2=this.frames.length;
                  if ( test1 != test2 )
                    {
                    open("http://http://www.arnold-fitness.de/default.htm?" + location.pathname",""),
                    }

                  Diese Lösung öffnet Deine Seite in einem neuen Browserfenster, das vorstehende benutzt das alte (ist etwas unfein...)

                  fastix

                  1. Hallo,

                    die Lösung von Orlando scheint mir besser zu sein.

                    Diese Lösung öffnet Deine Seite in einem neuen Browserfenster, das vorstehende benutzt das alte (ist etwas unfein...)

                    Warum, schließlich hat das Fenster doch seinen Frame gekapert!
                    Viele Grüße
                    Mathias Bigge

                  2. Nachtrag: hättest Du den Quelltext auf meinen Seiten gelesen, dann hättest Du eigentlich drauf kommen müssen. Wozu schreibe ich die ganzen Kommentare..

                    Deine Seiten ließen sich leider nicht öffnen, so dass ich gezwungen war, mich als erfolgloser Autodidakt zu outen ;)

                    Herzlichen Dank an alle für die Hilfe. Ich setze jetzt parent.frames ein und es funktioniert prächtig.

                    Viele Grüße und eine schöne Woche,
                    Andreas

              2. Hi, Andreas

                Öffne ich die Content Seite direkt, läd sich das Framesetz nach. Wird es in einem fremden Frame geöffnet, läd es ebenfalls nach, nur leider innerhalb des fremden Frames.

                Probier's mal so:

                function checkFrameset() {
                  if(!parent.nav)

                top.location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;
                      ^^^

                }

                LG Orlando

                --
                SELF-TREFFEN 2002
                http://www.rtbg.de/selftreffen/
                http://www.megpalffy.org/temp/penneninhh.html

    2. 3. Versuch mit dem Link...

      http://fastix.dyndns.org/tutor/Javascript/fenster.html