Caveman: Anker auf versch. Seiten mit einem Menupunkt ansprechen

Menu-Funktion

Ich versuche eine Menufunktion zu implementieren, die in den verschiedenen Main-Frame-Seiten (ohne mehrmaliges Menu-Laden) zu einem Anker am Anfang und am Ende der Seite springt. Ich habe bei einer Seite die genau so eine Funktion hat (www.heraeus.de - im Fuss-Frame) folgenden Quelltext geborgt:

<script language="JavaScript">
function GoLabel(Ziel)
{
var ref = top.Middle.Text.location.href.replace(/#.*/,"");
ref = ref + "#" + Ziel;
//alert (ref);
top.Middle.Text.location.href = ref;
return false;
}
</script>

Das muss irgendwas damit zu tun haben, aber ich komme nicht dahinter.

  1. Hallo Caveman,

    Das muss irgendwas damit zu tun haben, aber ich komme nicht dahinter.

    Ja, richtig geraten ;-)
    Diese Funktion setzt auf etwas umständliche Weise den Ankerpunkt. Du kannst sie im Head-Bereich deiner Seite (also zwischen <head> und </head>) einbinden und dann aus dem Body so aufrufen:
    <a href="javascript:GoLabel('top')">Hoch</a>

    oder so:
    <input type="button" onclick="GoLabel('top')" value="Hoch" />

    Anscheinend sitzt das ganze in einem Frameset von dem ein Frame "Middle" heißt. In diesem Middle-Frame scheint es einen weiteren (I-)Frame zugeben, der auf den Namen "Text" hört. Und in diesem Text-Frame wird der Ankerpunkt gesetzt.

    var ref = top.Middle.Text.location.href.replace(/#.*/,"");

    Die lokale Variable ref wird mit dem URL der im Text-Frame angezeigten Seite Initialisiert. Ein eventuell bereits gesetzter Ankerpunkt wird abgetrennt.

    ref = ref + "#" + Ziel;

    An ref wird nach einem Gatterzeichen der neue Ankerpunkt angehängt.

    //alert (ref);

    Zum debuggen: Wenn die beiden Schrägstriche entfernt werden, gibt der Browser den Inhalt der Variablen ref zum Test aus.

    top.Middle.Text.location.href = ref;

    Die Adresse des Text-Frames wird auf die neue Ankerposition gesetzt.

    Du kannst es auch so schreiben (finde ich einfacher):

    <script language="JavaScript">
    function GoLabel(Ziel)
    {
      top.Middle.Text.location.hash = "#" + ref;
      return false;
    }
    </script>

    Viel Erfolg,
    Robert

    --
    Dieser Beitrag wurde zu 100% aus ganzen Sätzen hergestellt und ist biologisch abbaubar.