bernhard: markierung in einem inhaltsverzeichniss

hallo

meine homepage ist in html-frames aufgeteilt, ein inhaltsverzeichniss-frame und ein inhalt-frame.
das problem:
ich möchte im inhaltsverzeichniss den aktuellen link markieren (z.b. mit einer anderen textfarbe oder
textformatierung). man kann aber auch im inhalt-frame zu anderen inhalten springen, womit sich auch
die markierung im inhaltsverzeichniss ändern sollte !
wie kann ich diese markierung erzeugen (nicht mit visited link, denn damit bleiben doch alle besuchten links
markiert, oder ?) und wie kann ich diese markierungen von einem anderen frame aus ändern ?

danke im voraus,
bernhard

  1. Hi Bernhard,

    ich habe auf einer von mir betreuten Seite ähnliches realisiert, indem ich neben die Textlinks ein transparentes GIF gesetzt habe, das durch ein anderes ersetzt wird (der Kunde wollte keine Images für die eigentliche Navigation).
    Im Prinzip ein ganz gewöhnlicher Bildertausch. Sicher nicht die optimalste Lösung (eins meiner erste Scripte), funktioniert aber seitdem ohne zu murren <g>

    (unnötigen attribs und angaben hab ich mal rausgeschmissen)

    <frameset>
      <frame src="navbar.htm" name="navbar">
      <frame src="main.htm" name="main">
    </frameset>

    Alle Seiten, die über "navbar" in "main" geladen werden haben folgenden BODY-Tag:

    <body onLoad="hierBinIch('SeitenKennung')">

    Im Frame "navbar" habe die Images, die geändert werden als Unterscheidung zu anderen Imgs in dem Frame den Präfix "i" (siehe JS-Schleife unten)

    <p><a href="gaga.htm">Linktext</a><img name="iSeitenKennung" src="bilder/blank.gif" width="10" height="10" alt="" border="0"></p>

    Die angezeigte Seite liefert also "ihre Kennung", die "zufällig" dem namen des Images bei dem Textlink entspricht...

    Funktion wird in der "main"-Datei aufgerufen z.B. durch einen externen Script (ab sie auf das Wesentliche gekürzt):

    function hierBinIch(doksrc) {
    // zeigt einen Pfeil neben der aktuellen Sektion/Seite an
    if (document.images) {
       var nb = parent.frames["navbar"].document;
       var hier = "bilder/hier.gif";
       var leer = "bilder/blank.gif";
       for (var a = 1; a < nb.images.length; a++) {
        if ((nb.images[a].name).charAt(0) == "i")
          nb.images[a].src=(nb.images[a].name=="i"+doksrc)?hier:leer;
       };
    };
    };

    In der Schleife werden pauschal alle "i*"-Images auf das transparente GIF zurückgesetzt. Findet die Routine ein "gleichnamiges" Image (nb.images[a].name=="i"+doksrc) wird es ausgetauscht.

    Damit ich nicht immer den Parameter "doksrc" ändern muß, wird im Original der Dateiname der angezegten "main"-HTML-Datei innerhalb der Funktion hierBinIch() ermittelt.
    Dateinamen und Imagenamen sind bei mir also indentisch.

    Allesse glar?

    Viel Spaß

    CirTap