Gültigkeitsprüfung Navigation
Stefan Voigt
- javascript
3 Cheatah0 JürgenB0 Gunnar Bittersmann
Hallo,
ich bin leider mit Javascript etwas unbedarft, daher finde ich nicht die richtige Lösung zu folgendem Problem:
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. Nun hätte ich aber gern das die aktiven Seiten in der Navi andersfarbig dargestellt werden. Meiner naiven Meinung nach brauche ich also ein Script das prüft welche Datei aktuell geladen ist, diese dann mit den Dateinamen in der Navigation vergleicht und dem jeweiligen Link ne andere Farbe gibt. Geht das und wenn ja wie?
Hi,
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.
ich finde es nicht wirklich superpraktisch, wenn auf einer Seite keine Navigation existiert.
Nun hätte ich aber gern das die aktiven Seiten in der Navi andersfarbig dargestellt werden. Meiner naiven Meinung nach brauche ich also ein Script das prüft welche Datei aktuell geladen ist, diese dann mit den Dateinamen in der Navigation vergleicht und dem jeweiligen Link ne andere Farbe gibt. Geht das und wenn ja wie?
Die URL des aktuellen Dokuments findest Du in location.href. Dein Konzept ist jedoch im Grundsatz stark fehlerbehaftet; Du solltest diese Aufgabe unbedingt und dringend einer serverseitigen Logik anvertrauen.
Cheatah
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
@@Stefan Voigt:
nuqneH
ich bin leider mit Javascript etwas unbedarft, daher finde ich nicht die richtige Lösung zu folgendem Problem:
Ich habe die Navigation einer HP in einer JS-Datei ausgelagert,
Die Lösung ist denkbar einfach: Lagere deine Navigation NICHT in eine JavaScript-Datei aus! Mache die Navigation NIE von optionalen Techniken wie JavaScript oder Flash abhängig; viele Clients führen das nicht aus und stehen dann ohne Navigation da. Darunter auch für dich äußerst wichtige.
das ist an sich super praktisch weil ich nicht immer alle Seiten ändern muß wenn ich an der Navi was zu editieren habe.
Dafür geben die FAQ ein paar Hinweise.
Nun hätte ich aber gern das die aktiven Seiten in der Navi andersfarbig dargestellt werden. Meiner naiven Meinung nach brauche ich also ein Script das prüft welche Datei aktuell geladen ist, diese dann mit den Dateinamen in der Navigation vergleicht und dem jeweiligen Link ne andere Farbe gibt.
Der Menüpunkt der aktuellen Seite sollte gar kein Link sein. (Punkt 10 der zehn meist-missachteten Homepage-Design-Richtlinien [Nielsen])
Qapla'