Ja­va­Script bringt frischen Wind in eine statische HTML-Datei. Sie können Ja­va­Script direkt oder als externe Datei in HTML einbinden. Wir zeigen Ihnen, welche Vor- und Nachteile die Ein­bin­dung von Ja­va­Script bietet und welche Be­son­der­hei­ten es gibt.

Profi-Website in Sekunden dank KI.
  • Profi-Website in Sekunden dank KI
  • Aus tausenden Vorlagen auswählen
  • 30 Tage kostenlos testen

Warum Ja­va­Script in HTML einbinden?

HTML, CSS und Ja­va­Script sind die drei Grund­säu­len des modernen World Wide Web. Wer eine moderne, in­ter­ak­ti­ve Website kreieren will, kommt kaum umhin, HTML-Text­da­tei­en durch die Ein­bin­dung von CSS und Ja­va­Script zu beleben. HTML-Dateien sind reine Text­do­ku­men­te zur Er­stel­lung und Struk­tu­rie­rung von Website-Inhalten. HTML lässt sich leicht lernen, kommt ohne For­ma­tie­run­gen aus und ist dank kos­ten­lo­ser Code-Editoren wie Notepad++ oder Kate be­die­ner­freund­lich. Für Krea­ti­vi­tät wiederum sorgen in HTML ein­ge­bun­de­ne CSS-Text­da­tei­en, die das Layout, die Farb­ge­bung, Ty­po­gra­fien und andere De­sign­ele­men­te einer Website de­fi­nie­ren.

Wirklich in­ter­ak­tiv zeigt sich eine Website erst mit Ja­va­Script-Elementen, die den Content um dy­na­mi­sches Verhalten erweitern. In HTML ein­ge­bun­de­ne Ja­va­Script-Dateien er­mög­li­chen zum Beispiel die aktive Ver­än­de­rung von Website-Inhalten wie etwa eine au­to­ma­ti­sche Da­tumsan­zei­ge. Bei ak­ti­vier­tem Ja­va­Script lassen sich Ja­va­Script-Inhalte in den meisten Browsern direkt ausführen. Das spart Re­chen­leis­tung und ver­bes­sert die La­de­ge­schwin­dig­keit von in­ter­ak­ti­ven Inhalten und Ani­ma­tio­nen einer Website.

Welche Mög­lich­kei­ten zur Ja­va­Script-Ein­bin­dung gibt es?

Ja­va­Script-Elemente notieren bzw. re­fe­ren­zie­ren Sie im HTML-Quellcode als <script>-Elemente wie folgt:

<script>JavaScript-Element</script>
html

<script>-Elemente binden Sie in der Regel im Body- oder im Head-Bereich eines HTML-Dokuments ein.

Hinweis

Für eine optimale La­de­ge­schwin­dig­keit spielt die Po­si­tio­nie­rung von Ja­va­Script im HTML-Dokument eine wichtige Rolle. Wenn Sie Skripte direkt vor dem schlie­ßen­den </body>-Tag einbinden, wird das Rendering der Seite nicht blockiert. Wird Ja­va­Script im <head> verwendet, sollte es bes­ten­falls mit defer oder async kom­bi­niert werden, um Ver­zö­ge­run­gen beim Sei­ten­auf­bau zu vermeiden. Al­ter­na­tiv kann man Skripte so gestalten, dass sie erst nach dem DOMContentLoaded-Event aus­ge­führt werden, also nachdem das HTML voll­stän­dig geladen und geparst wurde. Dies ver­bes­sert die Re­ak­ti­ons­zeit der Seite und sorgt für ein besseres Nut­zer­er­leb­nis.

Je nachdem, wie Sie Ja­va­Script in HTML einbinden, stehen Ihnen folgende Mög­lich­kei­ten zur Auswahl:

  • Ja­va­Script direkt in der HTML-Seite notieren: Die direkte Ein­bin­dung in HTML sorgt dafür, dass Ja­va­Script-Dateien über eine direkte Notierung schnellst­mög­lich laden. Der Nachteil ist, dass direkte Einträge für jedes HTML-Dokument einer Website erfolgen müssen, um Inhalte zu laden.
  • Ja­va­Script als externe Datei in HTML re­fe­ren­zie­ren: Die Ein­bin­dung als externe Ja­va­Script-Datei re­fe­ren­ziert die Ja­va­Script-Datei im HTML-Text. Die Ein­bin­dung als Referenz er­mög­licht es, extern notierte Ja­va­Script-Dateien auf mehreren Seiten zu laden, ohne diese direkt als aus­führ­li­che Ja­va­Script-Elemente in HTML-Dateien notieren zu müssen.
Tipp

Die Ein­bin­dung von Ja­va­Script-Elementen fällt mit spe­zi­el­len Ja­va­Script-Frame­works besonders leicht. JS-Frame­works fassen vor­de­fi­nier­te Ja­va­Script-Objekte und An­wei­sun­gen zusammen und er­leich­tern das Pro­gram­mie­ren.

Si­cher­heits­aspek­te bei der Ein­bin­dung von Ja­va­Script

Bei der Ja­va­Script-Ein­bin­dung sollten Sie stets auch an die Si­cher­heit denken. Ein zentraler An­griffs­punkt ist das Cross-Site-Scripting (XSS), bei dem schad­haf­ter Code über Formulare oder externe Inhalte ein­ge­schleust wird. Um dies zu vermeiden, sollten Eingaben stets validiert und nicht ver­trau­ens­wür­di­ge Inhalte ent­schärft werden.

Weitere Schutz­me­cha­nis­men bieten moderne Techniken wie Sub­re­sour­ce Integrity (SRI), bei der ein Hashwert die Un­ver­sehrt­heit einer geladenen Datei ga­ran­tiert, sowie Content-Security-Policys (CSP), die das Ausführen un­er­wünsch­ter Skripte blo­ckie­ren. CSP-Header erlauben es bei­spiels­wei­se nur Skripte aus be­stimm­ten Quellen zu­zu­las­sen.

Ja­va­Script in HTML einbinden: An­wen­dungs­bei­spie­le

Sie können zwischen zwei ver­schie­de­nen Methoden wählen, um Ja­va­Script ein­zu­bin­den. Wir stellen Ihnen beide vor.

Ja­va­Script in HTML direkt einbinden

Um Ja­va­Script-Elemente möglichst schnell zu laden, plat­zie­ren Sie das script-Element im HTML-Head bzw. im HTML-Body. In neuen Browsern genügt hier bereits ein relativ simpel ge­hal­te­ner JS-Quellcode. Im folgenden Beispiel soll über eine Ja­va­Script-Ein­bin­dung die Nachricht „Hallo Freund“ auf einer Website ge­schrie­ben werden:

<!DOCTYPE html>
<html>
<head>
<title>JavaScript: Hallo Freund</title>
</head>
<body>
<p>Diese Website zeigt nur eine Hinweisbox an.</p>
<script>
alert("Hallo Freund!");
</script>
</body>
</html>
html

Komplexe Dar­stel­lun­gen, Ani­ma­tio­nen oder in­ter­ak­ti­ve Elemente lassen sich ebenfalls direkt in HTML notieren. Der Vorteil an einer direkten Ein­bin­dung ist, dass Ja­va­Script-Elemente direkt in der HTML-Datei be­ar­bei­tet werden. Der Nachteil ist, dass Sie Ja­va­Script-Funk­tio­nen für jedes HTML-Dokument separat im Quellcode notieren müssen. Das führt zu erhöhtem Aufwand beim Pflegen des Quell­codes.

Ja­va­Script als externe Datei einbinden

Ef­fi­zi­en­ter und ge­bräuch­li­cher ist es, Ja­va­Script als externe Datei zu notieren und im HTML-Dokument zu re­fe­ren­zie­ren. Auf diese Weise lässt sich Ja­va­Script in HTML einbinden als wäre die Datei direkt im Quellcode notiert.

Im HTML-Dokument sieht es wie folgt aus:

<!DOCTYPE html> 
<html lang="de">
<head> 
<title>Externe JavaScript-Datei einbinden</title>
<script src="dateiname.js" defer></script>
</head>
<body>
<p>Hier wird JavaScript als externe Datei geladen.</p>
</body>
</html>
html

Die Ja­va­Script-Ein­bin­dung als externe Datei bietet den Vorteil, dass lediglich der Link zur externen Datei re­fe­ren­ziert wird. So können alle ge­wünsch­ten HTML-Seiten mit ent­spre­chen­der Referenz auf die Datei zugreifen und diese schneller laden. Zudem lässt sich der Quellcode einfacher pflegen, da es sich nicht um mehrere HTML-Dokumente, sondern nur um eine Ja­va­Script-Datei handelt.

Be­son­der­hei­ten

Wenn Sie Ja­va­Script wie gerade gezeigt als Datei einbinden, haben Sie im modernen HTML-Standard wie HTML5 die Mög­lich­keit, den Aus­füh­rungs­zeit­punkt des Codes fest­zu­le­gen oder aber Ja­va­Script-Dateien modular zu struk­tu­rie­ren:

Die HTML-Attribute async und defer steuern, wann und wie Skripte geladen und aus­ge­führt werden. Während async das Script sofort nach dem Laden ausführt (un­ab­hän­gig vom HTML-Parsing), wartet defer, bis das gesamte Dokument geparst ist. Letzteres bietet sich vor allem für Skripte an, die vom DOM abhängig sind.

Besonders für größere Web­pro­jek­te bietet sich die Nutzung von type="module" an. Damit lassen sich Ja­va­Script-Dateien modular struk­tu­rie­ren, wodurch sich komplexe An­wen­dun­gen besser or­ga­ni­sie­ren und warten lassen. Module werden stan­dard­mä­ßig im defer-Modus geladen. Die moderne Modul-Ar­chi­tek­tur ist damit der be­vor­zug­te Weg für ska­lier­ba­re Web­an­wen­dun­gen. Jeder Modulcode wird außerdem in einem eigenen Scope aus­ge­führt, wodurch globale Na­mens­kon­flik­te vermieden werden. Mit den Schlüs­sel­wör­tern import und export können in der Mo­du­lar­chi­tek­tur Funk­tio­nen, Klassen oder Kon­stan­ten zwischen Dateien geteilt werden.

<!DOCTYPE html>
<html lang="de">
<head>
<title>Async, Defer und Module Beispiel</title>
<!-- async: lädt sofort, führt aus, sobald geladen (Reihenfolge nicht garantiert) -->
<script src="async-beispiel.js" async></script>
<!-- defer: lädt parallel, führt nach dem Parsen in Reihenfolge aus -->
<script src="defer-beispiel.js" defer></script>
<!-- module: moderne Modularchitektur, wird automatisch "defer"-artig geladen -->
<script type="module" src="module-beispiel.js"></script>
</head>
<body>
<h1>Beispielseite für async, defer und module</h1>
</body>
</html>
html

Im obigen HTML-Beispiel werden drei Ja­va­Script-Dateien un­ter­schied­lich ein­ge­bun­den: Das Script mit async (async-beispiel.js) wird parallel geladen und sofort nach dem Laden aus­ge­führt, was zu einer un­vor­her­seh­ba­ren Rei­hen­fol­ge führt. Das defer-Script (defer-beispiel.js) wird ebenfalls parallel geladen, aber erst nach dem voll­stän­di­gen Parsen des HTML-Dokuments aus­ge­führt. Das Modul-Script (module-beispiel.js) verhält sich ähnlich wie defer, nutzt aber zu­sätz­lich die Mo­du­lar­chi­tek­tur mit eigenem Scope und Import-/Export-Un­ter­stüt­zung für moderne Web­an­wen­dun­gen.

Tipp

Ja­va­Script-Elemente waren bisher der Standard für in­ter­ak­ti­ve Inhalte auf Websites und in Browsern. Da jedoch selbst Ja­va­Script nicht immer schnell genug lädt, kommt in­zwi­schen der offene Standard We­b­As­sem­bly immer häufiger als Ja­va­Script-Ergänzung zum Einsatz.

Be­son­der­hei­ten in ver­schie­de­nen HTML-Versionen

Wenn Sie Ja­va­Script in HTML einbinden, beachten Sie, dass ältere Browser einen aus­führ­li­che­ren Quellcode erfordern. Statt dem ein­fa­che­ren HTML-5-Tag <script>…</script> würde die Ja­va­Script-Ein­bin­dung wie folgt aussehen:

<script type="text/javascript">
JavaScript-Element
</script>
html

Möchten Sie für Be­su­che­rin­nen und Besucher mit de­ak­ti­vier­tem Ja­va­Script eine Platz­hal­ter­mel­dung anzeigen, so nutzen Sie folgenden <noscript>-Tag:

<head>
<script>
JavaScript-Element
</script>
<noscript>
Bitte aktivieren Sie JavaScript, um das JavaScript-Element zu sehen.
</noscript>
</head>
html
Website mit eigener Domain – MyWebsite Now
Erstellen Sie Ihre eigene Website in wenigen Minuten
  • Pro­fes­sio­nel­le Templates
  • Än­de­run­gen am Design mit nur einem Klick
  • Domain, SSL und E-Mail-Postfach inklusive

Autor

Reviewers

Zum Hauptmenü