| Asunto: | Re: [hcc] Etiquetas HTML 4.01 / VALIDACIONES | | Fecha: | Martes, 29 de Julio, 2003 20:40:30 (+0200) | | Autor: | Juan R. Pozo <jrpozo @........net>
|
Hello Gustavo,
Wednesday, June 4, 2003, 2:08:01 AM, you wrote:
> Jarabe para la tos! Luego de una amplia colaboración entre fanaticos
> de esta y otras listas, todos hemos llegado a la conclusión de que
> el validador del W3C es un poco quisquilloso y toma una etiqueta
> <script> por ejemplo dentro de un document.write() como si fuera una
> auténtica etiqueta. [...]
En realidad, lo más probable es que no hayas escapado la barra de las
etiquetas finales. La sección B.3.2 de la especificación de HTML 4
trata sobre eso:
[blockquote]
Cuando los datos de scripts o estilo sean el contenido de un elemento
(SCRIPT y STYLE), los datos comienzan inmediatamente después de la
etiqueta inicial del elemento y terminan en el primer delimitador
ETAGO ("</") seguido por un carácter inicial de nombre ([a-zA-Z]);
obsérvese que esto puede no ser la etiqueta final del elemento. Los
autores deberían por tanto transformar el carácter "</" en su
secuencia de escape cuando aparezca dentro del contenido. Los
mecanismos de escape son específicos de cada lenguaje de scripts o de
hojas de estilo.
EJEMPLO ILEGAL:
Los siguientes datos de script contienen, incorrectamente, la
secuencia "<" (como parte de "</EM>") antes de la etiqueta final de
SCRIPT:
<SCRIPT type="text/javascript">
document.write ("<EM>Esto no funcionará</EM>")
</SCRIPT>
En JavaScript, este código puede expresarse legalmente ocultando el
delimitador ETAGO antes del carácter inicial del nombre SGML:
<SCRIPT type="text/javascript">
document.write ("<EM>Esto funcionará<\/EM>")
</SCRIPT>
[/blockquote]
También conviene escapar los caracteres '>' según se explica en la
sección 18 de la especificación, aunque no por motivos de sintaxis
sino de implementación:
[blockquote]
Nota. Algunos navegadores cierran los comentarios al encontrar el
primer carácter ">", de modo que para ocultar el contenido de los
scripts de estos navegadores, se pueden invertir los operandos de los
operadores relacionales y de desplazamiento (p.ej., usar "y < x" en
vez de "x > y") o se pueden usar caracteres de escape dependientes del
lenguaje de scripts para ">".
[/blockquote]
Un saludo,
--
Juan R. Pozo - http://html.conclase.net/
|