Il tag HTML <script>

Il codice JavaScript può trovarsi in file separati, oppure all’interno delle pagine HTML. Quest’ultima opzione non è consigliabile, però capita di usarla.

Qui spiego i modi migliori per includere del codice JavaScript, in entrambi i casi.

File esterni

Il codice da usare è il seguente:

<script src="percorso/nome_file.js"></script>

src è l’attributo che indica il percorso e il nome del file JavaScript da includere. E’ buona norma usare solo caratteri minuscoli nel percorso e terminare il nome del file con l’estensione .js.

Di solito i tag script contengono molti più attributi, ma non sono necessari. Ecco i motivi.

language è deprecato in favore di type, e comunque "javascript" è l’unico valore consentito dai browser. IE invece permette anche VBScript, ma il supporto a questo linguaggio dovrebbe essere considerato un bug.

type non ha alcuna utilità. L’unico valore sensato è "text/javascript", ma verrà comunque ignorato, perché il browser si fida delle intestazioni HTTP comunicate dal server, non del valore di questo attributo.

Esistono anche attributi specifici di IE, ma il supporto a questi attributi dovrebbe essere considerato un bug.

Codice embedded

Quando il codice JavaScript viene incluso in una pagina HTML, bisognerebbe usare la sintassi seguente:

<script>
    // <![CDATA[
    <cite>...codice...</cite>
    // ]]>
</script>

Grazie ai commenti (//), le stringhe <![CDATA e ]]> vengono ignorate dal motore JavaScript, evitando di generare errori. Servono invece al motore di rendering, perché indicano che al loro interno eventuali tag devono essere ignorati. Quindi caratteri come < e > potranno essere utilizzati senza paura.

Questo accorgimento, insieme a pochi altri, rende le pagine HTML5 dei documenti XML well-formed (da qui il termine informale XHTML5).

Anche in questo caso, gli inutili attributi elencati nella sezione precedente non devono essere utilizzati. Un tempo inoltre si usava circondare il codice JavaScript con i <!– commenti HTML –> ma questa tecnica è inutile (e potenzialmente dannosa) già dai tempi di… Netscape 2!