Ver Mensaje Individual
  #5 (permalink)  
Antiguo 31/07/2011, 07:52
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Validación XHMTL de fragmento con JavaScript 2

JUMASOL:
Lo de @zerokilled está bastante claro, pero me explayo con un ejemplo para que lo visualices mejor.
No se trata de si la script está dentor o fuera del body,
en este caso en particular, el signo < está permitido y debe ir como tal, ya que esta funcionando como comparador y no tiene salida en html

ejemplo

tienes esto, que está mal

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. var displayedPage = 1;
  9. var lastPage = 1;
  10. if (displayedPage < lastPage){
  11. alert('xxx');
  12. }
  13. //]]>
  14. </head>
  15. <p><script type="text/javascript">
  16. //<![CDATA[
  17. var displayedPage = 1;
  18. var lastPage = 1;
  19. if (displayedPage < lastPage){
  20. var z = 1;
  21. }
  22. document.write("<a href='xxx.php?id=01&tema=detalles' title='detalles & sugerencias'><b>Detalles</b></a>");
  23. //]]>
  24. </script></p>
  25. </body>
  26. </html>

Ahora, para una validación correcta y para un javascript correcto (ya que en la segunda script que si saca algo por pantalla, tendrias una advertencia) sería

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. var displayedPage = 1;
  9. var lastPage = 1;
  10. if (displayedPage < lastPage){
  11. alert('xxx');
  12. }
  13. //]]>
  14. </head>
  15. <p><script type="text/javascript">
  16. //<![CDATA[
  17. var displayedPage = 1;
  18. var lastPage = 1;
  19. if (displayedPage < lastPage){
  20. var z = 1;
  21. }
  22. document.write("<a href='xxx.php?id=01&tema=detalles' title='detalles & sugerencias'><b>Detalles<\/b><\/a>");
  23. //]]>
  24. </script></p>
  25. </body>
  26. </html>

es decir usas CDATA (evitando que se procese por parte del validador ese bloque) para prevenir errores de validación xhtml y comentas cualquier caracter especial (es el caso de("/") de Js si este tiene que ser mostrado en el html generado, para evitar errores propios de javascript.

Fijate el detalle de que inclui el caracter & en la segunda script, habitualmente el validador exige que lo expreses como &amp;, sin embargo en este caso no te lo considerará un error porque directamente no lo procesa por estar en un CDATA.

Como ves son 2 cosas distintas las que tenemos en cuenta

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 31/07/2011 a las 08:07