Florian: Frame-URL auslesen

Hallo,
ich hab mal wieder ein kleines Problem. Ich hab auf meiner Seite folgendes Frameset:

<frameset rows="*,70" frameborder="yes" border="0" framespacing="0">
   <frame name="mainFrame" src="home.html" marginwidth="10" marginheight="5">
  <frame name="footerFrame" scrolling="no" noresize src="footer.html" marginwidth="0" marginheight="0">
</frameset>

Ich möchte nun durch Klick auf einen Link in footer.html zum Anker #top in  "mainFrame" zu springen und zwar unabhängig davon, welche Datei dort grad angezeigt wird

Ich könnte mir vorstellen, dass man den Dateinamen auslesen und dann via <a href="#" onClick="parent.mainFrame.location.href='#top'"> o.ä. das Problem lösen könnte. Leider weiß ich nicht wie ich das machen soll.

Vielen Dank schon im Voraus.

  1. Hellihello Florian,

    Hallo,
    ich hab mal wieder ein kleines Problem. Ich hab auf meiner Seite folgendes Frameset:

    <frameset rows="*,70" frameborder="yes" border="0" framespacing="0">
       <frame name="mainFrame" src="home.html" marginwidth="10" marginheight="5">
      <frame name="footerFrame" scrolling="no" noresize src="footer.html" marginwidth="0" marginheight="0">
    </frameset>

    Ich möchte nun durch Klick auf einen Link in footer.html zum Anker #top in  "mainFrame" zu springen und zwar unabhängig davon, welche Datei dort grad angezeigt wird

    Ich könnte mir vorstellen, dass man den Dateinamen auslesen und dann via <a href="#" onClick="parent.mainFrame.location.href='#top'"> o.ä. das Problem lösen könnte. Leider weiß ich nicht wie ich das machen soll.

    wieso lässt Du Dir nicht mir alert genau das ausgeben? Dann weißt du, ob du die href des Frames erwischt hast.

    Danach dann leichtes Spiel:

      
    was_auch_immer='#asdfasdfasdf';  
    old_href=parent.framename.location.href;  
    parent.framename.location.href = old_href + was_auch_immer;  
    
    

    Dank und Gruß,

    frankx

    1. Danke schonmal für die Hilfe. Leider versteh ich nicht ganz, wie ich das per alert ausgeben könnte...

      Hellihello Florian,

      Hallo,
      ich hab mal wieder ein kleines Problem. Ich hab auf meiner Seite folgendes Frameset:

      <frameset rows="*,70" frameborder="yes" border="0" framespacing="0">
         <frame name="mainFrame" src="home.html" marginwidth="10" marginheight="5">
        <frame name="footerFrame" scrolling="no" noresize src="footer.html" marginwidth="0" marginheight="0">
      </frameset>

      Ich möchte nun durch Klick auf einen Link in footer.html zum Anker #top in  "mainFrame" zu springen und zwar unabhängig davon, welche Datei dort grad angezeigt wird

      Ich könnte mir vorstellen, dass man den Dateinamen auslesen und dann via <a href="#" onClick="parent.mainFrame.location.href='#top'"> o.ä. das Problem lösen könnte. Leider weiß ich nicht wie ich das machen soll.

      wieso lässt Du Dir nicht mir alert genau das ausgeben? Dann weißt du, ob du die href des Frames erwischt hast.

      Danach dann leichtes Spiel:

      was_auch_immer='#asdfasdfasdf';
      old_href=parent.framename.location.href;
      parent.framename.location.href = old_href + was_auch_immer;

      
      > Dank und Gruß,  
      >   
      > frankx
      
      1. Hellihello Florian,

        na im footer:

        alert(parnet.NamedesFrames.location.href);

        wenn die Ausgabe stimmt, dann s.u.;

        Danke schonmal für die Hilfe. Leider versteh ich nicht ganz, wie ich das per alert ausgeben könnte...

        Hellihello Florian,

        Hallo,
        ich hab mal wieder ein kleines Problem. Ich hab auf meiner Seite folgendes Frameset:

        <frameset rows="*,70" frameborder="yes" border="0" framespacing="0">
           <frame name="mainFrame" src="home.html" marginwidth="10" marginheight="5">
          <frame name="footerFrame" scrolling="no" noresize src="footer.html" marginwidth="0" marginheight="0">
        </frameset>

        Ich möchte nun durch Klick auf einen Link in footer.html zum Anker #top in  "mainFrame" zu springen und zwar unabhängig davon, welche Datei dort grad angezeigt wird

        Ich könnte mir vorstellen, dass man den Dateinamen auslesen und dann via <a href="#" onClick="parent.mainFrame.location.href='#top'"> o.ä. das Problem lösen könnte. Leider weiß ich nicht wie ich das machen soll.

        wieso lässt Du Dir nicht mir alert genau das ausgeben? Dann weißt du, ob du die href des Frames erwischt hast.

        Danach dann leichtes Spiel:

        was_auch_immer='#asdfasdfasdf';
        old_href=parent.framename.location.href;
        parent.framename.location.href = old_href + was_auch_immer;

        
        > > Dank und Gruß,  
        > >   
        > > frankx  
        
        Dank und Gruß,  
          
        frankx
        
        1. Hallo nochmal,

          ich kriegs leider immer noch nicht hin...

          So schaut der Quelltext z.Z. aus:

          <html>
          <head>
          <script type="text/javascript">
          anker='#top';
          old_href=parent.mainFrame.location.href;
          parent.mainFrame.location.href = old_href + anker;
          </script>
          </head>

          <body>
          <a href="#" onClick="parent.mainFrame.location.href;">top</a>
          </body
          </html>

          Wenn ich als Eventhandler onClick="alert(parent.mainFrame.location.href);" schreibe, bekomme ich genau die richtige URL, allerdings klappt das Anspringen des Ankers mit dem obengenannten Code nicht...

          Hellihello Florian,

          na im footer:

          alert(parnet.NamedesFrames.location.href);

          wenn die Ausgabe stimmt, dann s.u.;

          Danke schonmal für die Hilfe. Leider versteh ich nicht ganz, wie ich das per alert ausgeben könnte...

          Hellihello Florian,

          Hallo,
          ich hab mal wieder ein kleines Problem. Ich hab auf meiner Seite folgendes Frameset:

          <frameset rows="*,70" frameborder="yes" border="0" framespacing="0">
             <frame name="mainFrame" src="home.html" marginwidth="10" marginheight="5">
            <frame name="footerFrame" scrolling="no" noresize src="footer.html" marginwidth="0" marginheight="0">
          </frameset>

          Ich möchte nun durch Klick auf einen Link in footer.html zum Anker #top in  "mainFrame" zu springen und zwar unabhängig davon, welche Datei dort grad angezeigt wird

          Ich könnte mir vorstellen, dass man den Dateinamen auslesen und dann via <a href="#" onClick="parent.mainFrame.location.href='#top'"> o.ä. das Problem lösen könnte. Leider weiß ich nicht wie ich das machen soll.

          wieso lässt Du Dir nicht mir alert genau das ausgeben? Dann weißt du, ob du die href des Frames erwischt hast.

          Danach dann leichtes Spiel:

          was_auch_immer='#asdfasdfasdf';
          old_href=parent.framename.location.href;
          parent.framename.location.href = old_href + was_auch_immer;

          
          > > > Dank und Gruß,  
          > > >   
          > > > frankx  
          > Dank und Gruß,  
          >   
          > frankx
          
          1. Hallo nochmal,

            ich kriegs leider immer noch nicht hin...

            frankx

            Hi again,
            hast Du meinen Vorschlag (zweiter von oben) schon mal ausprobiert?

            Gruß

            1. Habs grade erst ausprobiert (hatte den Beitrag leider übersehen...), geht aber auch nicht. Danke trotzdem!

              Hallo nochmal,

              ich kriegs leider immer noch nicht hin...

              frankx
              Hi again,
              hast Du meinen Vorschlag (zweiter von oben) schon mal ausprobiert?

              Gruß

              1. Habs grade erst ausprobiert (hatte den Beitrag leider übersehen...), geht aber auch nicht. Danke trotzdem!

                Wirklich? Habe es selbst auch eben durchgespielt und das läuft so. Was kommt den für ein Fehler (wenn überhaupt)?

                1. Das ist komisch. Fehler kommt keiner, es tut sich einfach nur nix. Als ob ich garnicht geklickt hätte.

                  Habs grade erst ausprobiert (hatte den Beitrag leider übersehen...), geht aber auch nicht. Danke trotzdem!
                  Wirklich? Habe es selbst auch eben durchgespielt und das läuft so. Was kommt den für ein Fehler (wenn überhaupt)?

                  1. Hellihello Florian,

                    Das ist komisch. Fehler kommt keiner, es tut sich einfach nur nix. Als ob ich garnicht geklickt hätte.

                    Nutzt Du Firefox und Webdevloper Tools?

                    Dank und Gruß,

                    frankx

                    1. Hellihello

                        
                      <frameset rows="50%,50%">  
                      <frame name="topFrame" src="top.html">  
                      <frame name="bottom" src="bottom.html">  
                      </frameset>  
                        
                      top.html:  
                        
                      <a name="top">  
                      <p>topcontent</p>  
                      ... ganz viel inhalt  
                      <p>content</p>  
                      ... ganz viel inhalt  
                      <p>bottomcontent</p>  
                        
                      <a name="bottom">  
                        
                      bottom.html:  
                        
                      <script type="text/javascript">  
                      //<![CDATA[  
                        
                      function changeURL(newHref) {  
                       parent.topFrame.location.href=newHref;  
                      }  
                      function goAnchor(anchorName) {  
                       parent.topFrame.location.href="top.html#" + anchorName;  
                       alert(parent.topFrame.location.href);  
                      }  
                        
                      //]]>  
                      </script>  
                        
                      <button onclick="changeURL('http://de.selfhtml.org')">changeURL('http://de.selfhtml.org')</button>  
                      <button onclick="goAnchor('top')">goAnchor('top')</button>  
                      <button onclick="goAnchor('bottom')">goAnchor('bottom')</button>  
                        
                      
                      

                      funzt.

                      Dank und Gruß,

                      frankx

                      1. Hallo nochmal,
                        ich hab jetzt wirklich ganz genau alles kopiert und es tut sich wieder nix. Einfach keine Reaktion, keine Fehlermeldung, garnix...
                        Vielleicht liegt es an irgendwelchen Sicherheiteinstellungen oder was weiß ich... Werd es morgen nochmal auf nem anderen PC probieren.

                        Dein anderes Posting hab ich auch gesehen. Die Lösung schaut auch interessant aus. Auch das werde ich mir morgen nochmal zu Gemüte führen

                        Vielen Dank für die Hilfe!

                        Schönen Abend noch
                          Florian

                        Hellihello

                        <frameset rows="50%,50%">
                        <frame name="topFrame" src="top.html">
                        <frame name="bottom" src="bottom.html">
                        </frameset>

                        top.html:

                        <a name="top">
                        <p>topcontent</p>
                        ... ganz viel inhalt
                        <p>content</p>
                        ... ganz viel inhalt
                        <p>bottomcontent</p>

                        <a name="bottom">

                        bottom.html:

                        <script type="text/javascript">
                        //<![CDATA[

                        function changeURL(newHref) {
                        parent.topFrame.location.href=newHref;
                        }
                        function goAnchor(anchorName) {
                        parent.topFrame.location.href="top.html#" + anchorName;
                        alert(parent.topFrame.location.href);
                        }

                        //]]>
                        </script>

                        <button onclick="changeURL('http://de.selfhtml.org')">changeURL('http://de.selfhtml.org')</button>
                        <button onclick="goAnchor('top')">goAnchor('top')</button>
                        <button onclick="goAnchor('bottom')">goAnchor('bottom')</button>

                        
                        >   
                        > funzt.  
                        >   
                        > Dank und Gruß,  
                        >   
                        > frankx
                        
                        1. Hallo nochmal,

                          Guten Morgen

                          ich hab jetzt wirklich ganz genau alles kopiert und es tut sich wieder nix. Einfach keine Reaktion, keine Fehlermeldung, garnix...
                          Vielleicht liegt es an irgendwelchen Sicherheiteinstellungen oder was weiß ich... Werd es morgen nochmal auf nem anderen PC probieren.

                          Dein anderes Posting hab ich auch gesehen. Die Lösung schaut auch interessant aus. Auch das werde ich mir morgen nochmal zu Gemüte führen

                          Ums dir etwas einfacher zu machen habe ich das mal hochgeladen:
                          http://www.scherkamp.de/mfg/florianframe/index.html
                          Das Zip dazu:
                          http://www.scherkamp.de/mfg/florianframe.zip

                          Vielen Dank für die Hilfe!

                          Schönen Abend noch
                            Florian

                          Viel Glück

                          Marcel

                          1. Danke schön! Jetzt funktioniert alles genau wie es soll. Falls es dich interessiert: Das Ganze hab ich jetzt auf http://http://www-anorganik.chemie.uni-wuerzburg.de/Braunschweig/index.html eingebaut.

                            Schöne Grüße und nochmals vielen Dank
                              Florian

                            Hallo nochmal,
                            Guten Morgen

                            ich hab jetzt wirklich ganz genau alles kopiert und es tut sich wieder nix. Einfach keine Reaktion, keine Fehlermeldung, garnix...
                            Vielleicht liegt es an irgendwelchen Sicherheiteinstellungen oder was weiß ich... Werd es morgen nochmal auf nem anderen PC probieren.

                            Dein anderes Posting hab ich auch gesehen. Die Lösung schaut auch interessant aus. Auch das werde ich mir morgen nochmal zu Gemüte führen

                            Ums dir etwas einfacher zu machen habe ich das mal hochgeladen:
                            http://www.scherkamp.de/mfg/florianframe/index.html
                            Das Zip dazu:
                            http://www.scherkamp.de/mfg/florianframe.zip

                            Vielen Dank für die Hilfe!

                            Schönen Abend noch
                              Florian
                            Viel Glück

                            Marcel

          2. Hellihello Florian,

            eher so:

            Hallo nochmal,

            ich kriegs leider immer noch nicht hin...

            So schaut der Quelltext z.Z. aus:

            <html>
            <head>

            <script type="text/javascript">
            function setAnchor() {
            //test:
            alert("vorher:"+parent.mainFrame.location.href);
            anker='#top';
            old_href=parent.mainFrame.location.href;
            parent.mainFrame.location.href = old_href + anker;
            //test:
            alert("nachher:"+parent.mainFrame.location.href);
            }
            </script>

            </head>

            <body>
            <a href="#" onClick="parent.mainFrame.location.href;">top</a>
            </body
            </html>

            Wenn ich als Eventhandler onClick="alert(parent.mainFrame.location.href);" schreibe, bekomme ich genau die richtige URL, allerdings klappt das Anspringen des Ankers mit dem obengenannten Code nicht...

            häh? ist das "#anker" mit bei? Ist irgendwo im Mainframe ein <a name="anker">? Klappt das anspringen innerhalb des Mainframes mit einem einfache Link dort?
            Dank und Gruß,

            frankx

            1. So klappt es leider auch nicht... In der Zieldatei ist nur der eine Anker namens top definiert, genau genommen ist die Datei sonst bis auf ziemlich viele <br>s leer. Direktes Anspringen von top aus dem gleichen Frame klappt einwandfrei.

              Hellihello Florian,

              eher so:

              Hallo nochmal,

              ich kriegs leider immer noch nicht hin...

              So schaut der Quelltext z.Z. aus:

              <html>
              <head>
              <script type="text/javascript">
              function setAnchor() {
              //test:
              alert("vorher:"+parent.mainFrame.location.href);
              anker='#top';
              old_href=parent.mainFrame.location.href;
              parent.mainFrame.location.href = old_href + anker;
              //test:
              alert("nachher:"+parent.mainFrame.location.href);
              }
              </script>
              </head>

              <body>
              <a href="#" onClick="parent.mainFrame.location.href;">top</a>
              </body
              </html>

              Wenn ich als Eventhandler onClick="alert(parent.mainFrame.location.href);" schreibe, bekomme ich genau die richtige URL, allerdings klappt das Anspringen des Ankers mit dem obengenannten Code nicht...

              häh? ist das "#anker" mit bei? Ist irgendwo im Mainframe ein <a name="anker">? Klappt das anspringen innerhalb des Mainframes mit einem einfache Link dort?
              Dank und Gruß,

              frankx

              1. Hellihello Florian,

                So klappt es leider auch nicht...

                Wer ist "klappen". Kommt taucht der Anker in der href nicht auf? dann hast dus nicht richtig gebastelt. Taucht er auf und "wirkt" nicht?

                In der Zieldatei ist nur der eine Anker namens top definiert, genau genommen ist die Datei sonst bis auf ziemlich viele <br>s leer. Direktes Anspringen von top aus dem gleichen Frame klappt einwandfrei.

                Vermutlich kämst Du Deinem Anliegen anders näher? Wie zB. schon Marshall schrub. Das Ganze kommt mir eher sinnfrei vor.

                Dank und Gruß und schönen Abend,

                frankx

                1. In dem Alert steht genau die richtige URL samt Anker, nur wenn ich den Alert rausnehme und so drauf klicke, passiert nix.

                  Der Sinn des Ganzen besteht darin, dass in einer Fußzeile ständig sichtbar (deswegen eigener frame) bestimmte links, u.a. ein "ganz nach oben-Link" verfügbar sein sollen.
                  Hab es schonmal über einen "css-footer" probiert, indem ich unten 10% vom Bildschirm abgetrennt hab. Das hatte zwar den Vorteil, dass der Footer in der gleichen Datei stand (Anker kein Problem), dafür war der auf größeren Bildschirmen auch entsprechend größer, was optisch nicht gut aussah. Wenn ich dagegen ne bestimmte Pixelhöhe vorgegeben hab, war es eben nur für eine Auflösung geeignet... Hab ich ne feste Höhe für den Footer und ne variable Höhe (z.b. 90%) für das obere Fenster genommen, überschnitten sich teilweise Footer und Scrollbalken...
                  Alles nicht ganz so einfach ;) Vielen Dank auf jeden Fall für eure Bemühungen!

                  Hellihello Florian,

                  So klappt es leider auch nicht...

                  Wer ist "klappen". Kommt taucht der Anker in der href nicht auf? dann hast dus nicht richtig gebastelt. Taucht er auf und "wirkt" nicht?

                  In der Zieldatei ist nur der eine Anker namens top definiert, genau genommen ist die Datei sonst bis auf ziemlich viele <br>s leer. Direktes Anspringen von top aus dem gleichen Frame klappt einwandfrei.

                  Vermutlich kämst Du Deinem Anliegen anders näher? Wie zB. schon Marshall schrub. Das Ganze kommt mir eher sinnfrei vor.

                  Dank und Gruß und schönen Abend,

                  frankx

                  1. Hellihello Florian,

                    https://forum.selfhtml.org/?t=161905&m=1060107. Statt height im Content einen Rahmen setzen, den Trick kannte ich auch noch nicht.

                    Ansonsten kommst Du mit url#anker an den Anker und wenn Du mit framename.location.href das Frame anspricst, muss es gehen. Vielleicht triffst Du das Frameset ja doch nicht. Mal eine andere url probiert?

                    Dank und Gruß,

                    frankx

                    1. So, ich hab es jetzt auf die Weise umgesetzt, die Marshall vorgeschlagen hat.

                      Die Seite ist auch schon online: http://www-anorganik.chemie.uni-wuerzburg.de/Braunschweig/index.html

                      Schöne Grüße und auch dir vielen Dank
                        Florian

                      Hellihello Florian,

                      https://forum.selfhtml.org/?t=161905&m=1060107. Statt height im Content einen Rahmen setzen, den Trick kannte ich auch noch nicht.

                      Ansonsten kommst Du mit url#anker an den Anker und wenn Du mit framename.location.href das Frame anspricst, muss es gehen. Vielleicht triffst Du das Frameset ja doch nicht. Mal eine andere url probiert?

                      Dank und Gruß,

                      frankx

  2. Hallo,

    Guten Abend

    Ich könnte mir vorstellen, dass man den Dateinamen auslesen und dann via <a href="#" onClick="parent.mainFrame.location.href='#top'"> o.ä. das Problem lösen könnte. Leider weiß ich nicht wie ich das machen soll.

    Am einfachsten wäre es wohl, Du packst in deine Inhaltsseiten folgendes Script mit rein:

      
    <script type="text/javascript">  
    var scrollDahin = function (wohin)  
    {  
     document.getElementById(wohin).scrollIntoView(true);  
    }  
    </script>  
    
    

    Deinen Top-Anker dann mit einer id versehen (z.B. <a name="top" id="ganzOben"></a>) und in deinen Footer schreibste den Link dann so:

    <a href="#" onClick="parent.mainFrame.scrollZu('ganzOben');return false;">top</a>

    Denke das müsste so klappen.

    Vielen Dank schon im Voraus.

    Gruß Marcel