Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:blc:informatik:glf22:web-tech:globalnav-in-js [2023/05/09 15:09] Ivo Blöchliger |
lehrkraefte:blc:informatik:glf22:web-tech:globalnav-in-js [2023/05/11 11:28] (current) Ivo Blöchliger [Vorbereitungen] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Im ''< | + | ====== 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> | <code html> | ||
- | <script src="navigation.js"> | + | <script src="common.js"></ |
</ | </ | ||
- | Die Navigation | + | Die HTML-Elemente, |
<code html> | <code html> | ||
- | <nav id="mainnavigation"> | + | <nav id="mein_nav_menu"> |
- | <--! Wird durch javascript | + | <--! Wird durch das Script |
</ | </ | ||
</ | </ | ||
- | Und das script, das die Navigation | + | ===== Das Script ===== |
+ | |||
+ | Und schliesslich | ||
- | <code javascript | + | <code javascript |
- | window.addEventListener(' | + | window.addEventListener(' |
- | | + | function insertHTML(id, |
- | | + | let el = document.getElementById(id); |
+ | if (el) { // Nur, wenn es ein solches Element auch gibt | ||
+ | el.innerHTML = html; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Gebrauch der Funktion: | ||
+ | | ||
+ | < | ||
+ | < | ||
+ | </ul>`); // Beachten Sie den schliessenden Backtick und die schliessende Klammer der Funktion | ||
+ | |||
+ | // Funktion kann mehrfach verwendet werden: | ||
+ | insertHTML(`mein_footer`, | ||
}); | }); | ||
</ | </ |