11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour tous

Ca fait un moment que je me pose la question et j'ai rien trouvé comme explication.
Ces balises servent à quoi au juste:
<!--   //-->


Si elles sont comme ça, la coloration syntaxique ne bouge pas:
<script type="text/javascript"><!-- 
      var a_vars = Array(); var pagename=''; .....etc 
//--></script>


Si je met tout sur une ligne, entre les balises tout devient vert, mais est-ce que cela continue de fonctionner:
<script type="text/javascript"><!-- var a_vars = Array(); var pagename=''; .......etc//--></script>

Modifié par griggione (02 Jan 2010 - 17:00)
Il s'agit tout simplement de balises de commentaires, qui n'empêchent pas l'exécution du code JavaScript qu'elles encadrent. Elles permettent de ne pas tenir compte du code JavaScript lors de la validation syntaxique du document.

En effet, lorsque un élément script contient le code suivant (c'est un exemple) sans ces balises de commentaires :
<script type="text/javascript">
  var i = 0;
  if (i >= 0 && i < 10) alert ('i est compris entre 0 et 10');
</script>

il invalide syntaxiquement le code (X)HTML, à cause des caractères spéciaux &, < et >, qui ne sont pas échappés (pour rappel, & est le premier caractère d'une entité HTML ou XML et < et > sont les chevrons qui délimitent une balise), ce qui donne à entendre au validateur qui analyse la syntaxe du code (X)HTML qu'il doit s'attendre à une entité lorsqu'il rencontre un & ou à une balise lorsqu'il trouve un chevron.

Le même code encadré par des balises de commentaires ou par des balises CDATA
<script type="text/javascript">
<!--
  var i = 0;
  if (i >= 0 && i < 10) alert ('i est compris entre 0 et 10');
-->
</script>

<script type="text/javascript">
<![CDATA[
  var i = 0;
  if (i >= 0 && i < 10) alert ('i est compris entre 0 et 10');
]]>
</script>

n'invalidera pas le code (X)HTML, puisqu'il sera ignoré du validateur, au même titre que les commentaires.
Modifié par Victor BRITO (02 Jan 2010 - 16:55)