2010-12-12 12 views
15

mayoría de los ejemplos que he visto tienen las secuencias de comandos en una página html siendo encerrados por¿Por qué debo comentar la etiqueta <script> en HTML?

<!-- 
... 
--> 

He intentado escribir sin las etiquetas de comentario y no parece haber ninguna diferencia. ¿Por qué se usa la etiqueta de comentario y qué función sirve?

Respuesta

22

Ya no es necesario. Esto solo ha servido como una especie de truco de compatibilidad con versiones anteriores: cuando las secuencias de comandos comenzaron a insertarse en páginas HTML estáticas, la mayoría de los navegadores no podían soportarlas. Sin los comentarios, ignorarían la semántica de la etiqueta <script> (que no entendieron) y luego emitirían la fuente del script en la página.

Irónicamente, la solución era un hack en sí mismo: AFAIK, ninguna parte de la especificación de HTML dice que las etiquetas de script se deberían analizar cuando estén dentro de los comentarios. El hecho de que todos los navegadores eligieron esto parece ser más una coincidencia que otra cosa. Ciertamente, con XHTML, los comentarios son comentarios, por lo que un navegador totalmente compatible sería que tiene para ignorar sus scripts.

Básicamente, a menos que realmente desee admitir, realmente navegadores antiguos (a cambio de romper algunos nuevos) ya no es necesario hacerlo.

+7

Recuerdo el truco como '// ', es decir, escribes las etiquetas de comentarios HTML como comentarios de JavaScript para que el motor de secuencias de comandos las ignore de esa manera. Por supuesto, eso significa que los navegadores antiguos pueden emitir el '//' desde la etiqueta de comentario abierto. – Rup

+0

+1 para comentario. No era la intención incluir las secuencias de comandos en los comentarios. – GolezTrol

8

Los navegadores realmente antiguos que no entendían la etiqueta <script> podrían suponer que era una etiqueta de formato que no entendían. Fallarían elegantemente al presentar el contenido de la etiqueta (el guión) en línea en la página.

Por HTML: al comentar la secuencia de comandos, esos navegadores ignorarán el contenido en lugar de representarlo.

En la práctica, dudo que alguno de esos navegadores todavía estén en uso y que probablemente pueda escapar sin los comentarios de hoy en día.

7

Es para algunos navegadores antiguos que estaban en uso el siglo pasado.

Ya no los necesita más hoy, pero usar CDATA se considera una buena práctica si escribe XHTML.

+1

Se considera una práctica aún mejor colocar el código de JavaScript en archivos separados. – GolezTrol

+4

+1 para la frase "el último siglo". :) –

+1

"en uso el siglo pasado" lol :) – Green

0

Todavía es un problema hoy en día si su página es procesada por un analizador de desinfección que lo desinfecta solo reescribiendo la etiqueta <script> en <xscriptx>. Si sale de la etiqueta de comentario, si la etiqueta del script se desinfecta, al menos su javascript seguirá oculto para el usuario por las etiquetas de comentario. Si deja de lado los comentarios, el código estará visible.

Un ejemplo de un analizador de desinfección es Google Translate, Google Cache o Proxomitron.

+0

Interesante. Sigo tu razonamiento, pero al menos ahora verifico Google Translate y Google Cache, pero no veo ningún problema. – J0e3gan

Cuestiones relacionadas