WPTheme » Balises Javascript et HTML

Balises Javascript et HTML

La balise <script>

la balise script possède deux buts :

  1. Elle identifie un bloc de script présent dans la page
  2. Elle charge le fichier de script

La manière dont elle agit dépend de la présence des attributs scr. La balise fermante </script> est requise dans tous les cas.

La balise script peut contenir les attributs suivants :

src=" url "

L’attribut src est facultatif. Dans le cas où il est présent, c’est la valeur contenu dans url qui identifie le fichier .js. Le processus de chargement et du traitement de la page sont mis en pause pendant que votre navigateur web récupère, compile et exécute le fichier. Le contenu entre les balises <script src="url"> et </script> doit être vide.

Si l’attribut src n’est pas présent, alors le contenu présent entre la balise <script> et </script> est compilé puis exécuté. Le script ne doit pas contenir la séquence

</

car elle peut être confondu avec la balise </script>. Pour pallier à ce problème, on insert une barre oblique inverse entre les chaînes < et / .

<\/

La barre oblique inverse sera ignorée par le compilateur JavaScript.
N’utilisez pas l’astuce <!-- // -->   avec des scripts L’objectif était d'empêcher les scripts de s’afficher sous forme de texte sur les navigateurs de première génération Netscape 1 et Mosaic. Cette astuce n’a pas été nécessaire durant de nombreuses années.
a pour vocation de signaler un commentaire HTML. Ces commentaires doivent être ignorés et non pas compilés et exécutés. De plus, les commentaires HTML ne doivent pas inclure –, donc un script qui décrémente en tant qu’erreur HTML.

language="javascript"

Cet attribut est désormais obsolète. Il était utilisé pour sélectionner d’autres langages de programmation et pour des versions spécifiques de Javascript. Si vous n’en avez pas l’utilité, ne l’utilisez pas !

type="text/javascript"

Cet attribut est optionnel. Depuis le navigateur Netscape 2, le langage de programmation par défaut de tous les navigateurs web est le Javascript. Avec le XHTML, il est préférable de le laisser de côté. Le navigateur web saura comment procéder.

defer

Cet attribut était prévu pour modifier la synchronisation des différents composants d’une page. Il n’est pas bien supporté et il ne devrait pas être utilisé.

for=" name " event=" name "

Cet attribut est une fonctionnalité de Microsoft pour déclarer des gestionnaires d’événements. Ce n’est pas standard et vous ne devriez pas l’utiliser.

Placement

La balise <script src="url"></script>  bloquera le téléchargement des autres composants de la page web jusqu’à ce que le script ai été récupéré, compilé et exécuté. Il est préférable de faire appel aux scripts le plus tard possible (dans la page) afin de ne pas bloquer le chargement des éléments de la page. Ceci va accélérer le temps de chargement effectif et ressenti de la page internet. Il est donc préférable de faire en sorte que toutes les balises <script src=" url "> </script> soient les dernières fonctionnalités avant la balise</body>. Un <script> in-page n’a pas d’impact significatif sur le temps de chargement.

Si un script a pour rôle de définir des fonctions ou des données utilisées par d’autres fonctions, la définition doit être effectuée avant utilisation.Les scripts de définition doivent donc précéder les scripts d’utilisation.

document.write

La méthode document.write permet d’intégrer des chaînes dans le code HTML de la page. Il existe cependant de meilleures méthodes de procéder, tels que l’utilisation de .innerHTML ou de .createElement et même la duplication de modèle HTML. L’utilisation de document.write doit être évitée.

L’utilisation de document.write dépend dangereusement du chargement. Si  document.write est appelé avant l’événement onload, il va ajouter ou insérer du texte dans la page. S’il est appelé après l’ onload, il va remplacer toute la page en détruisant tout ce qui précède.

document.write participe à une mauvaise structure dans laquelle script et balisage sont mélangé. Une bonne structure, une structure saine, possède le minimum d’interaction entre balisage et script.

Le hack de la balise script

l’attribut src, étonnamment, n’est pas limité par Same-origin policy (est une méthode de contrôle utilisée par les navigateurs web pour pallier certains problèmes de sécurité.) Cela signifie qu’un élément de script peut être crée pour aller sur n’importe quel serveur, récupérer un script et l’exécuter. Si le script récupère des données au format JSON, cela est très interessant. Malheureusement, il n’existe aucun moyen de contraindre le script ou de l’inspecter avant de l’exécuter. Il fonctionne avec les mêmes droits que les autres scripts de la page. Ainsi, le script peut accéder à ses cookies et les utiliser. Il peut accéder au serveur d’origine en utilisant les accès utilisateur. Il peut inspecter le DOM et le Global Object et envoyer les informations récupérées partout dans le monde. Le hack de la balise script n’est pas sécurisé et doit être évité !

L’auteur de ce texte est Douglas Crockford. Cette page est une traduction en français de la page JavaScript and HTML Script Tags que vous trouverez à l’adresse suivante : http://crockford.com/javascript/script.html

 

Retour en haut
Retour haut de page