Het <script>-element specificeert een script dat op de pagina moet worden toegepast. Meestal is dit een stuk JavaScript, maar ook VBScript is mogelijk.
Het element kan op twee manieren gebruikt worden. De eerste manier is de scriptcode als inhoud van het element opnemen. De tweede manier is het src-attribuut gebruiken en het element leeg laten.
<script … > … </script>
async-attribuut
Het booleaanse async-attribuut geeft aan dat het laden van het document niet hoeft te worden stilgezet totdat het script is uitgevoerd.
Dit komt overeen met de definitie van het defer-attribuut in HTML 4 en XHTML 1 en het async-attribuut mag daarom worden gecombineerd met het defer-attribuut voor betere browserondersteuning.
<script async="async" … > … </script>
charset-attribuut
Indien het src-attribuut is gebruikt, specificeert het charset-attribuut de karakterset van het scripbestand waarnaar verwezen wordt.
<script charset="…" … > … </script>
defer-attribuut
Het booleaanse defer-attribuut geeft aan dat het uitvoeren van het script moet worden uitgesteld totdat het document volledig is geladen.
Internet Explorer tot versie 10 en Firefox tot versie 3.6 gaan wel door met het laden van de rest van het document, maar het script wordt alsnog zo snel mogelijk uitgevoerd en niet uitgesteld tot het document volledig is geladen. Volgens de specificatie van HTML 4 en XHTML 1 was dit toegestaan, volgens de specificatie van (X)HTML5 niet.
<script defer="defer" … > … </script>
src-attribuut
Indien er sprake is van een extern scriptbestand, specificeert het src-attribuut de locatie van dit scriptbestand. De waarde heeft de vorm van een koppeling.
<script src="…" … > … </script>
type-attribuut
Het type-attribuut wordt gebruikt om de scripttaal vast te leggen. Het is een MIME-type. Mogelijke waarden zijn:
"text/javascript"voor JavaScript;"text/vbscript"voor VBScript.
In HTML 4 en XHTML 1 was dit attribuut verplicht. Sinds (X)HTML5 is "text/javascript" de standaardwaarde.
<script type="…" … > … </script>
Globale attributen
De globale attributen mogen op elk element worden toegepast. Dit zijn accesskey, class, contenteditable, contextmenu, data-…, dir, draggable, hidden, id, lang, spellcheck, style, tabindex en title.
Geschrapte attributen
De volgende attributen zijn niet meer toegestaan in (X)HTML5, maar waren wel toegestaan in HTML 4 en XHTML 1:
language-attribuut
Het language-attribuut werd gebruikt om de scripttaal op te geven. Mogelijke waarden zijn "JavaScript", "JavaScript1.x" (vul een cijfer voor de x in) en "VBScript".
Vervang dit attribuut door het type-attribuut.
<script language="…" … > … </script>