Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf22:web-tech:globalnav-in-js [2023/05/09 12:53] – created Ivo Blöchliger | lehrkraefte:blc:informatik:glf22:web-tech:globalnav-in-js [2023/05/11 09:28] (current) – [Vorbereitungen] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Gemeinsamer HTML-Code auf unterschiedlichen Seiten ====== | ||
| + | Typischerweise ist das Navigationsmenü und der Footer auf allen Seiten gleich. Wenn diese Elemente angepasst werden, muss die Anpassung auf allen Seiten durchgeführt werden, was nicht nur einfach mühsam, sondern auch fehleranfällig ist. | ||
| + | Sinnvollerweise werden diese Teile in separaten Dateien gepflegt. Dafür gibt es verschiedene Möglichkeiten. Eine davon ist die Inhalte dynamisch mit JavaScript einzufügen. Diese Möglichkeit wird hier aufgezeigt | ||
| + | |||
| + | ===== Vorbereitungen ===== | ||
| + | Im ''< | ||
| + | |||
| + | <code html> | ||
| + | <script src=" | ||
| + | </ | ||
| + | |||
| + | Die HTML-Elemente, | ||
| + | |||
| + | <code html> | ||
| + | <nav id=" | ||
| + | <--! Wird durch das Script automatisch befüllt. Allfälliger Inhalt wird überschrieben --> | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Das Script ===== | ||
| + | |||
| + | Und schliesslich das Script, das die Codes einfügt: | ||
| + | |||
| + | <code javascript common.js> | ||
| + | window.addEventListener(' | ||
| + | | ||
| + | let el = document.getElementById(id); | ||
| + | if (el) { // Nur, wenn es ein solches Element auch gibt | ||
| + | el.innerHTML = html; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // Gebrauch der Funktion: | ||
| + | | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | | ||
| + | // Funktion kann mehrfach verwendet werden: | ||
| + | insertHTML(`mein_footer`, | ||
| + | }); | ||
| + | </ | ||