### <script>

L'élément script est utilisé pour intégrer du code d'un langage de script comme JavaScript (supporté par tous les navigateurs) ou VBScript (uniquement Internet Explorer).

Suivant les attributs dans la balise, le code du script sera :

- directement écrit dans le fichier HTML,
- intégré depuis un fichier externe référencé par une URL.

Comme pour les feuilles de style, il faut préférer l'intégration d'un fichier des script externe qui offre le grand avantage de pouvoir être partagé par toutes ou partie des pages du site. On peut ainsi constituer et utiliser des bibliothéques de modules comprenant objets et fonctions utilitaires. L'intégration d'un fichier externe se fait avec l'attribut `src` dont la valeur est l'URL du fichier de script à intégrer.

Mais on ne peut pas toujours mettre tout le code de script dans un fichier, surtout si ce code est spécifique à une page, comme par exemple l'attachement de gestionnaire d'événements à des éléments particuliers. Dans ce cas, il faut préférer l'intégration dans le code HTML plutôt que le téléchargement d'un fichier de quelques octets.

Exemple : intégration de code JavaScript
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Intégration de code JavaScript</title> <!-- Liaison d'un fichier de script externe --> <script src="../exemples/exemple.js"></script> <script> window.onload = function() { var B = document.getElementsByTagName('BUTTON')[0]; B.addEventListener('click', ajouterParagraphe, false); }; </script> </head> <body> Saisissez du texte à ajouter à la page : <br> <textarea></textarea> <button>Ajouter</button> </body> </html>

Il peut y avoir autant d'éléments script que l'on veut dans un document. De plus, ces éléments peuvent se trouver n'importe où dans le document, dans l'en-tête aussi bien que dans le corps. D'ailleurs, certaines pratiques placent les éléments script à la fin du document HTML, juste avant la balise de fermeture `</body>`. Celà s'explique par le fait que le navigateur bloque son travail d'analyse syntaxique du code HTML tant qu'un fichier de script n'est pas téléchargé car ce fichier peut contenir des instructions qui vont créer du code HTML. La pratique a adopter dépend de l'utilisation qui est faite du langage de script et de ses interactions éventuelles avec le code HTML du document.

Exemple : intégration de code JavaScript
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Intégration de code JavaScript</title> <style> p {display: none} </style> <!-- Liaison d'un fichier de script externe --> <script src="../exemples/exemple.js"></script> </head> <body> <script> alert("Exemple d'affichage/masquage de paragraphes"); </script> <button>Plus d'infos</button><br> <p>Il peut y avoir autant d'éléments script que l'on veut dans un document.</p> <button>Plus d'infos</button><br> <p>De plus, ces éléments peuvent se trouver n'importe où dans le document.</p> <script> var aB = document.getElementsByTagName('BUTTON'); for (var i = 0; i < aB.length; i++) { aB[i].addEventListener('click', afficherMasquer, false); } </script> </body> </html>

On peut utiliser un attribut `type` pour préciser le type MIME du code intégré. Dans le cas de code JavaScript, la valeur de cet attribut doit être `text/javascript`. Cette valeur étant la valeur par défaut de l'élément, la présence de cet attribut est totalement inutile.

Quelque soit le type d'intégration fait par l'élément script, tout ce qui suit la balise d'ouverture `<script>` est considéré comme du code du langage de script, jusqu'à ce que le navigateur rencontre une balise de fermeture `</script>`. Il ne faut surtout pas oublier cette balise de fermeture sinon la page ne s'affichera pas correctement comme le montre l'exemple suivant.

Exemple : intégration de code JavaScript
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Intégration de code JavaScript</title> <style> p {display: none} </style> <!-- Liaison d'un fichier de script externe --> <script src="../exemples/exemple.js"></script> </head> <body> <!-- La balise script n'est pas fermée --> <script> alert("Exemple d'affichage/masquage de paragraphes"); <button>Plus d'infos</button><br> <p>Il peut y avoir autant d'éléments script que l'on veut dans un document.</p> <button>Plus d'infos</button><br> <p>De plus, ces éléments peuvent se trouver n'importe où dans le document.</p> <script> var aB = document.getElementsByTagName('BUTTON'); for (var i = 0; i < aB.length; i++) { aB[i].addEventListener('click', afficherMasquer, false); } </script> </body> </html>