Ich habe mehrere HTML-Seiten, die das gleiche Navigationsmenü
erhalten sollen.
Es soll dabei die gerade aktuelle Seite mit aria-current="page"
hervorgehoben werden. Ich versuche ein Lösung zu finden,
die Punkte des Navigationsmeüns in eine externe Datei auszulagern,
so dass ich es nur in der externen Datei ändern muss,
falls es sich ändern sollte.
Mein Navigationsmenü in der index.html:
<nav>
<ul>
<li><a aria-current="page">Home</a></li>
<li><a href="punkt1.html">Punkt1</a></li>
<li><a href="punkt2.html">Punkt2</a></li>
</ul>
</nav>
Mein Navigationsmenü in der punkt1.html:
<nav>
<ul>
<li><a href="index.html">Home</a></li>
<li><a aria-current="page">Punkt1</a></li>
<li><a href="punkt2.html">Punkt2</a></li>
</ul>
</nav>
Mein Navigationsmenü in der punkt2.html:
<nav>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="punkt1.html>Punkt1</a></li>
<li><a aria-current="page">Punkt2</a></li>
</ul>
</nav>
Unter
https://stackoverflow.com/questions/8988855/include-another-html-file-in-a-html-file
habe ich gelesen, dass man per JavaScript HTML-Fragmente einlesen kann
(dortiges Beispiel mit a.html und b.js).
Mein Beispiel würde dann so aussehen:
<nav>
<ul>
<script src="b.js"></script>
</ul>
</nav>
Datei b.js:
<li><a aria-current="page">Home</a></li>
<li><a href="punkt1.html">Punkt1</a></li>
<li><a href="punkt2.html">Punkt2</a></li>
Das Problem ist nun das aria-current. Denn das ändert sich ja in
jeder Datei (index.html, punkt1.html, punkt2.html), so dass
obiger Inhalt der b.js nur für die index.html richtig wäre.
Gibt es trotzdem eine Lösung, den ausgelagerten Code
wiederverwendbar zu machen? Man müsste wohl das irgendwie
mit weiterem JavaScript-Code regeln können, der das
aria-current="page" einsetzt je nach Namen der Datei,
von der b.js aufgerufen wurde.
Als in etwa so:
Datei b.js:
Durch welche Datei wurde ich aufgerufen?
-> Ersetze im folgenden Code das href-Tag dort durch
aria-current="page", wo es dem Namen der aufrufenden
Datei zugewiesen wurde.
<li><a href="index.html>Home</a></li>
<li><a href="punkt1.html">Punkt1</a></li>
<li><a href="punkt2.html">Punkt2</a></li>
Weiß jemand, wie man das erreichen kann?