2010-06-17 21 views
2

Le service de validation w3c se plaint que le code html suivant n'est pas valide. Il n'aime pas l'esperluette (&) dans mon javascript. Mais les esperluettes sont autorisées dans les chaînes javascript, n'est-ce pas?Est-ce que XHTML 1.0 Transitional est valide?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Page Title</title> 
    </head> 
    <body> 
     <script type="text/javascript"> 


      function search(query) { 
      redir = "http://search.mysite.com/search?s=FIN&ref=&q=" + query; 
      window.location.href = redir 
      return false; 
      } 
     </script> 

     <span>This is all valid HTML</span> 

    </body> 
</html> 
+1

Ils sont autorisés dans la chaîne JavaScript. Mais votre chaîne JavaScript est en HTML. Et là, ce n'est pas autorisé. – Gumbo

+0

http://validator.w3.org/#validate_by_input –

Répondre

1

Non, ce n'est pas valide. Si vous souhaitez utiliser JavaScript en ligne dans un fichier XHTML, vous devez placer le code JavaScript dans CDATA. Si vous ne voulez pas faire cela, alors vous êtes coincé avec l'encodage &, et>, qui en JavaScript peut être assez pénible.

3

Tous les navigateurs prendront, mais pour la rendre valide X (HT) ML vous devez mettre le code Javascript dans un bloc CDATA.

2

Même en javascript w3c validateur n'aime pas les esperluettes. Essayez de commenter votre javascript du validateur

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Page Title</title> 
    </head> 
    <body> 
     <script type="text/javascript"> 
     //<![CDATA[//><!-- 
      function search(query) { 
      redir = "http://search.mysite.com/search?s=FIN&ref=&q=" + query; 
      window.location.href = redir 
      return false; 
      } 
     //--><!]]> 
     </script> 

     <span>This is all valid HTML</span> 

    </body> 
</html>