klaus: navileiste links farben

tagchen,
ich hätte gerne den link der navigationsleiste farblich eingefärbt, dessen bereich gerade vom benutzer besucht wird. die anderen navilinks sollen derweil blass bleiben. so dass der benutzer stets weiss in welchem seitenbereich er sich befindet. gibt es für sowas ein javascript o.ä.?
schöne grüße,
klaus

  1. Hi,

    ich hätte gerne den link der navigationsleiste farblich eingefärbt, dessen bereich gerade vom benutzer besucht wird. die anderen navilinks sollen derweil blass bleiben. so dass der benutzer stets weiss in welchem seitenbereich er sich befindet. gibt es für sowas ein javascript o.ä.?

    Mir fallen da jetzt zwei Möglichkeiten ein:
    A:
    Du überprüfst mit Javascript, ob die im Link verlinkte Seite die ist, auf der sich der Besucher gerade befindet und formatierst den entsprechenden Link mit Hilfe des DOM neu...(aufwändig, da im worst case alle Links geprüft werden müssen; setzt voraus, das der Besucher JavaScript aktiviert hat und dass das DOM unterstützt wird - andernfalls müsstest du für alle Browser separat schreiben)

    oder

    B:
    Du machst die Seite mit PHP und fügst die andere Formatierung mit Hilfe des PHP-Scripts ein...(setzt PHP auf dem Server voraus; sieht bei allen Besuchern gleich aus)

    Gruß
    Arx

    --
    Do it yourSELF 'cause SELFmade is bestmade.
    Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
    Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
    Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
    Für alle Forum-Neulinge:
    1.http://de.selfhtml.org/
    2.http://suche.de.selfhtml.org/ -> http://forum.de.selfhtml.org/archiv/
    3.http://forum.de.selfhtml.org/faq/ -> http://forum.de.selfhtml.org/cgi-bin/fo_post
    1. vielen dank für eure tips.
      schöne grüße,
      klaus

  2. Tach Klaus,

    Das läßt sich gut mit serverseitigen Scripten machen

    Beispiel für php:

    $link=array( ~ alle links verweis=>bezeichnung ~);
    $c=' class="hier"';
    $a=explode('/',$_SERVER['PHP_SELF']);
    $a=explode('?',$a[count($a)-1]);
    foreach($link as $k => $v)
       {
       echo '<div><a href="'.$k.'"';
       if($k==$a[0]) echo $c;
       echo '>'.$v.'</a></div>';
       }

    Wenn du aber von vonherein mit QUERY_STRINGS arbeitest, wird das etwas komplizierter.

    Aber Dein Frage gallt JS. Ja - dort ist es genauso möglich den window.location.href mit lastIndexOf() zu analysieren, mit dem zu vergleichen:

    for(var i=0;i<document.getElementsByTagName('a').length;i++)
      {
      v=document.getElementsByTagName('a')[i]
      if(v.href==analyse-string) v.style.[eigenschaft]=""
      }

    und CSS-Eigenschaften zuzuweisen. Sind Deine Navi-Links auch im restlichen Text des Dokumentes verstreut, ist das natürlich nicht wirklich praktikabel. Da empfele ich Dir dann die Navi-Links in ein Element mit fester ID einzuschließen und dann nur die Kindknoten zu durchsuchen.

    Gruß aus Berlin!
    eddi