JürgenB: Gültigkeitsprüfung Navigation

Beitrag lesen

Hallo Stefan,

Ich habe die Navigation einer HP in einer JS-Datei ausgelagert, das ist an sich super praktisch weil ich nicht immer alle Seiten ändern muß wenn ich an der Navi was zu editieren habe.

diese Idee ist nur gut, wenn du sicher bist, das alle Besucher Javascript eingeschaltet haben und das Suchmaschinen, die Javascript nicht unterstützen, nur die Startseite finden sollen.

Wenn nicht, solltest du dich über "Include"-Techniken kundig machen. Du konntest die Navigation z.B. per Server Site Includes (SSI) einbinden. Die Includefunktion einiger Editoren wäre auch eine Möglichkeit, vor allem bei kleinen Sites, deren Struktur sich nicht so oft ändert und wenn serverseitige Techniken nicht zur Verfügung stehen.

Siehe hierzu auch http://forum.de.selfhtml.org/hilfe/faq.htm#quelltext-auslagern

Nun hätte ich aber gern das die aktiven Seiten in der Navi andersfarbig dargestellt werden. ...

Dieses geht mit serverseitigen Techniken, z.B. mit PHP. Wenn diese nicht zur Verfügung stehen, könnte man für dieses nicht ganz so wichtige Feature auch Javascript einsetzen. Ich habe das bis vor einiger Zeit folgendermaßen gemacht:

~~~javascript if (document.URL && document.getElementById && document.replaceChild) {
  var u=document.URL;
  var p=Math.max(u.lastIndexOf("/"),u.lastIndexOf("\"));
  u=u.substring(p+1,u.length);
  var a=document.getElementById("menue").getElementsByTagName("a");
  for (var i=0;i<a.length;i++)
   if (a[i].href.indexOf(u)>-1)
      a[i].parentNode.replaceChild(document.createTextNode(a[i].firstChild.data),a[i]);
 }

  
Das Script sucht und ersetzt den Link auf die aktuelle Seite durch einen Textknoten, also:  
  
`<li><a href="...">Linktext>/a></li>`{:.language-html} --> `<li>Linktext</li>`{:.language-html}.  
  
  
Lies mal die Doku zu den verwendeten Methoden und versuche, das Script zu verstehen.  
  
  
Inzwischen pflege ich die Navigation auf meiner privaten kleinen und recht statischen Site von Hand und beruflich befülle ich (fast) nur noch ein CMS mit Inhalt.  
  
Gruß, Jürgen