2010-12-12 93 views
15

La plupart des exemples que j'ai vu ont des scripts dans une page html étant ferméePourquoi dois-je commenter la balise <script> en HTML?

<!-- 
... 
--> 

Je l'ai essayé d'écrire sans les balises de commentaire et il ne semble pas y avoir de différence. Pourquoi la balise de commentaire est-elle utilisée et quelle fonction est-elle utilisée?

Répondre

22

Ce n'est plus vraiment nécessaire. Cela n'a servi que de hack de compatibilité ascendante - lorsque les scripts ont commencé à être insérés dans des pages HTML statiques, la plupart des navigateurs ne pouvaient pas les prendre en charge. Sans les commentaires, ils ignoraient la sémantique de la balise <script> (qu'ils ne comprenaient pas), puis émettaient la source du script sur la page.

Ironiquement, la solution était un hack en soi - AFAIK, aucune partie de la spécification HTML ne dit que les balises de script doivent être analysées à l'intérieur des commentaires. Le fait que tous les navigateurs aient ramassé ça semble être plus une coïncidence qu'autre chose. Certainement avec XHTML, les commentaires sont des commentaires si un navigateur entièrement conforme aurait avoir pour ignorer vos manuscrits.

Donc, à moins que vous ne vouliez vraiment prendre en charge, vraiment anciens navigateurs (au prix d'en casser de nouveaux) il n'est plus nécessaire de le faire.

+7

Je me souviens de l'astuce comme '// ', c'est-à-dire que vous écrivez les balises de commentaires HTML comme des commentaires JavaScript afin qu'ils soient ignorés par le moteur de script de cette manière. Bien sûr, cela signifie que les anciens navigateurs peuvent émettre le '//' à partir de la balise de commentaire ouverte. – Rup

+0

+1 pour commenter. Ce n'était pas l'intention d'inclure les balises de script elles-mêmes dans les commentaires. – GolezTrol

8

Les anciens navigateurs qui ne comprenaient pas le tag <script> pouvaient supposer qu'il s'agissait d'une balise de mise en forme qu'il ne comprenait pas. Ils échoueraient gracieusement en rendant le contenu de la balise (le script) en ligne dans la page. Par HTML-commentant le script aussi ces navigateurs ignoreront le contenu plutôt que le rendent.

En pratique, je doute que l'un de ces navigateurs soit toujours utilisé et que vous puissiez probablement vous en passer sans les commentaires de nos jours.

7

C'est pour certains anciens navigateurs qui étaient utilisés au siècle dernier.

Vous n'en avez plus besoin aujourd'hui, mais l'utilisation de CDATA est considérée comme une bonne pratique si vous écrivez XHTML.

+1

Il est encore préférable de placer le code javascript dans des fichiers séparés. – GolezTrol

+4

+1 pour l'expression "le siècle dernier". :) –

+1

"en usage au siècle dernier" lol :) – Green

0

Il est toujours un problème de nos jours si votre page est traitée par un analyseur d'assainissement qui assainit en réécrivant seulement la balise <script> en <xscriptx>. Si vous laissez dans la balise de commentaire, alors si la balise de script est nettoyée, au moins votre javascript sera caché à l'utilisateur par les balises de commentaire. Si vous omettez les commentaires, le code sera visible.

Un exemple d'analyseur d'assainissement est Google Translate, Google Cache ou Proxomitron.

+0

Intéressant. Je suis votre raisonnement, mais en vérifiant Google Traduction et Google Cache maintenant au moins, je ne vois pas un tel problème. – J0e3gan