CirTap: markierung in einem inhaltsverzeichniss

Beitrag lesen

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