Foros del Web » Creando para Internet » HTML »

Validación XHMTL de fragmento con JavaScript 2

Estas en el tema de Validación XHMTL de fragmento con JavaScript 2 en el foro de HTML en Foros del Web. Un fragmento de JavaScript que debe ir dentro del body aparece como no validable: Concretamente: if (this.displayedPage < lastPage) Que arroja este error: Line 117, ...
  #1 (permalink)  
Antiguo 28/07/2011, 05:37
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Validación XHMTL de fragmento con JavaScript 2

Un fragmento de JavaScript que debe ir dentro del body aparece como no validable:

Concretamente:

if (this.displayedPage < lastPage)

Que arroja este error:

Line 117, Column 30:

character "<" is the first character of a delimiter but occurred as data

if (this.displayedPage < lastPage)

This message may appear in several cases:

•You tried to include the "<" character in your page: you should escape it as "&lt;"
•You used an unescaped ampersand "&": this may be valid in some contexts, but it is recommended to use "&amp;", which is always safe.
•Another possibility is that you forgot to close quotes in a previous tag.

Tal vez no se pueda validar, ya que no es xhtml.

Si se puede, agradecería una opinión al respecto.

Gracias.
  #2 (permalink)  
Antiguo 28/07/2011, 07:54
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 10 meses
Puntos: 45
Respuesta: Validación XHMTL de fragmento con JavaScript 2

Buenas,

ya te respondió emprear aquí .

Por cierto el nombre de la clase .noscript no parece muy acertado porque creo que lo que quieres hacer es justo lo contrario aplicar esa clase cuando si que hay javascript.
  #3 (permalink)  
Antiguo 29/07/2011, 02:16
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Respuesta: Validación XHMTL de fragmento con JavaScript 2

Este es otro tema, no como el anterior en que me contesto emprear.

Se trata de validar

if (this.displayedPage < lastPage)

Que viene en otra parte del código.


Creo que se trata de que el validador no ve o no interpreta el signo "<" como parte de javascript, sino con un signo cualquiera.

Lo que quiero saber es si se puede validar o no estándo en el body.

Un saludo.

Gracias.
  #4 (permalink)  
Antiguo 31/07/2011, 00:10
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Validación XHMTL de fragmento con JavaScript 2

buenas,
fijate que el validador no considera ni interpreta código javascript. por lo tanto, al leer dicha linea, el signo que reporta error no lo lee como un operador "menor que". entre algunas cosas, parte de lo que comprende el validador es que los simbolos &, <, >, ' son especiales en el lenguaje html. por tanto, cuando el validador llega a esa linea lo que entiende es que se esta intentando declarar un elemento html. pero como encuentra que la sintaxis no es correcta, entonces reporta error. la solución es muy simple: separar el script del documento en un archivo *.js, o comentar el script [el código dentro de las etiquetas <script>] con una etiqueta comment html. creo que también funciona reemplazando el signo por su equivalente entidad html (no estoy seguro).

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 31/07/2011, 07:52
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 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
  #6 (permalink)  
Antiguo 31/07/2011, 09:29
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Validación XHMTL de fragmento con JavaScript 2

esto es raro, ¿es xhtml o no lo es?
Cita:
Iniciado por JUMASOL Ver Mensaje
Tal vez no se pueda validar, ya que no es xhtml.
porque si es xhtml, entonces con el CDATA debería ser otra opción. no obstante, en html no existe el CDATA.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 31/07/2011, 11:09
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Validación XHMTL de fragmento con JavaScript 2

Como dice @zerokilled, no no existe, sólo tuve en cuenta el título del post

Validación XHMTL de fragmento con JavaScript


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

Etiquetas: fragmento, javascript, validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:13.