SELFHTML/Aides à la navigation HTML/XHML Éléments HTML avancés |
Passages Script en HTML |
|
Définir un passage Script |
|
Vous pouvez définir un ou plusieurs passages Script dans l'entête d'un fichier, donc entre <head>
et </head>
, mais aussi dans le corps d'un fichier HTML, à savoir entre <body>
et </body>
. Dans les passages Script vous pouvez noter des commandes du langage Script utilisé.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Texte du titre</title> <script type="text/javascript"> <!-- function cejour() { var maintenant = new Date(); var jour = maintenant.getDate(); var mois = maintenant.getMonth() + 1; var an = maintenant.getYear(); if(an < 999) an += 1900; var jourprec = ((jour < 10) ? "0" : ""); var moisprec = ((mois < 10) ? ".0" : "."); var date = jourprec + jour + moisprec + mois + "." + an; document.write("<h1>" + date + "<\/h1>") } //--> </script> </head> <body> <script type="text/javascript"> <!-- cejour(); //--> </script> <p>Actualités ...</p> </body> </html> |
Avec <script>
vous introduisez un passage Script, avec </script>
vous mettez fin au passage Script. Dans ce passage, vous pouvez noter des instructions du langage script utilisé. Du point de vue de HTML, tout ce qui figure dans ce passage est considéré comme du "pur texte". De ce fait, des conflits peuvent en fin de compte survenir entre un langage tel que JavaScript et un analyseur (syntaxique HTML) strictement conforme SGML. Un tel analyseur de syntaxe considère le passage script comme terminé dès qu'il rencontre la prochaine chaîne de caractères </
. Quand vous avez besoin de cette chaîne de caractères dans JavaScript comme dans l'exemple ci-dessus dans la dernière instruction où à l'aide de document.write
un titre N°1 est écrit dans le document. À la fin du texte est mentionné là <\/h1>
à la place de </h1>
. La barre oblique inverse (Backslash) sert en JavaScript à masquer le signe qui la suit, ce qui dans l'exemple à l'endroit où elle est placée et du point de vue de JavaScript ne signifie rien d'autre et n'a pas d'autre effet. La barre oblique inverse n'est pas non plus conçue pour l'interpréteur JavaScript mais pour les analyseurs syntaxiques HTML tatillons.
Pour empêcher que les navigateurs plus anciens n'affichent par erreur le contenu du passage script en tant que texte , il est recommandé de mettre son contenu dans un texte non affiché (commentaires), comme dans l'exemple ci-dessus. Dans la dernière ligne du commentaire, notez ensuite un commentaire JavaScript, d'une ligne introduit par //
, suivi par le repère de fermeture du commentaire HTML -->
. Le commentaire JavaScript est nécessaire pour empêcher les messages d'erreurs dans les navigateurs supportant les scripts. Ne perdez pas de vue qu'avant et après le commentaire HTML un passage à la ligne est indispensable.
Dans le repère d'ouverture <script>
mentionnez avec l'attribut obligatoire type=
quel langage Script vous désirez utiliser dans le passage. Affectez comme valeur le type Mime du langage script. La mention la plus courante pour le faire est text/javascript
pour JavaScript.
L'attribut language=
encore toujours très utilisé et avec lequel de nombreux concepteurs Web mentionnent le langage script dans le repère d'ouverture <script>
(par exemple language="JavaScript"
ou bien language="JavaScript1.2"
), ne fait pas partie du standard HTML et génère du HTML non valide. Les navigateurs connaissent certes l'attribut language
et l'interprètent mais pour les navigateurs plus récents l'attribut type=
suffit amplement pour reconnaître le langage.
Les commandes Script proprement dites ne seront pas traitées plus en détail ici. Lisez sur ce thème le chapitre JavaScript dans cette documentation.
Vous pouvez définir un passage qui ne sera affiché que si le langage Script utilisé n'est pas disponible et que par conséquent le Script ne peut être exécuté. C'est le cas quand le navigateur ne connaît pas le langage Script ou si l'utilisateur a déconnecté l'interpréteur du langage Script dans les réglages de son navigateur.
Une telle mention est importante par exemple si vos pages WWW utilisent intensément le JavaScript pour afficher des contenus ou exécuter des liens. Dans de tels cas un projet sans JavaScript est à peine utilisable. Grâce à un passage Noscript vous pouvez insérer un avertissement correspondant.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Texte du titre</title> <script type="text/javascript"> <!-- function cejour() { var maintenant = new Date(); var jour = maintenant.getDate(); var mois = maintenant.getMonth() + 1; var an = maintenant.getYear(); if(an < 999) an += 1900; var jourprec = ((jour < 10) ? "0" : ""); var moisprec = ((mois < 10) ? ".0" : "."); var date = jourprec + jour + moisprec + mois + "." + an; document.write("<h1>" + date + "<\/h1>") } //--> </script> </head> <body> <script type="text/javascript"> <!-- cejour(); //--> </script> <noscript> <h1>Bonjour!</h1> </noscript> <p>actualités ...</p> </body> </html> |
L'exemple contient les mêmes scripts que dans l'exemple précédent de la partie Définir un passage Script. Cette fois ci pourtant on a pensé en plus aux navigateurs qui ne connaissent pas JavaScript ou dont JavaScript a été désactivé. Pour ces navigateurs a été noté un titre normal h1
contenant Bonjour!
à l'endroit où est placé, pour les navigateurs supportant les scripts, le titre généré par script qui contient la date du jour.
Avec <noscript>
vous introduisez un passage Noscript, avec </noscript>
vous le terminez. Entre ces repères sont attendus des éléments de bloc à savoir par exemple des titres, des paragraphes de texte ou des passages div
.
Les navigateurs Web qui connaissent l'élément noscript
n'affichent son contenu que si l'utilisateur a désactivé le langage script utilisé par exemple JavaScript. Les navigateurs Web qui ne connaissent aucun langage Script, ne
connaissent en principe pas non plus le repère noscript
mais
d'après une ancienne règle ils ignorent simplement le repère et affichent tout à fait normalement le contenu du passage Noscript.
Il existe en HTML une série d'autres options pour les passages Script qui peuvent être notés comme attributs dans le repère d'ouverture <script>
:
Avec l'attribut src=
vous pouvez incorporer un Script noté dans un fichier séparé. C'est avantageux si vous voulez utiliser un Script sur plusieurs pages différentes. Alors vous n'avez besoin que de référencer le Script au lieu de le noter à chaque fois dans le fichier. Le passage Script dans le fichier peut dans ce cas rester vide comme dans l'exemple ci-dessus. Il peut aussi encore contenir aussi un Script local. Un exemple pour incorporer des fichiers script externes et des précisions à ce sujet peuvent être consultés dans la partie traitant de JavaScript dans des fichiers distincts.
Quand vous incorporez avec src=
un script externe, vous pouvez en plus déterminer grâce à l'attribut charset=
le jeu de caractères d'après lequel la source externe doit être traitée. Cela est important par exemple quand dans un script vous ne masquez pas les caractères avec accents et autres caractères spéciaux par exemple pour des sorties HTML. Dans ce cas, vous pouvez mentionner charset="ISO-8859-1"
pour prévenir le navigateur qu'il doit employer ce jeu de caractères dans les cas incertains. Les mentions de jeux de caractères permises sont celles qui sont indiquées à l'adresse Web http://www.iana.org/assignments/character-sets.
Un autre attribut du nom de defer
(attribut autonome) doit empêcher que le script écrive du texte de façon dynamique. Des instructions JavaScript distinctes comme document.write()
sont ainsi neutralisées. Pensez que cet attribut n'est cependant interprété jusqu'alors par les versions les plus récentes de l'Explorer Internet.
Dans le sommaire de référence HTML vous trouverez des données précisant où les éléments HTML présentés ici peuvent être mis, quels attributs ils peuvent avoir et ce à quoi il faut veiller pour ces différents attributs:
référence pour les éléments pour les passages script
référence pour les attributs pour les passages script
référence pour les éléments pour les passages Noscript
référence pour les attributs pour les passages Noscript
Attributs universels généraux | |
Passages de feuilles de style en HTML | |
SELFHTML/Aides à la navigation HTML/XHML Éléments HTML avancés |
© 2001 Stefan Münz / © 2003 Traduction Serge François, 13405@free.fr
selfhtml@fr.selfhtml.org