2010-06-17 65 views
2

w3c验证器服务声称以下html无效。它不喜欢&符号(&)在我的JavaScript。但是在JavaScript字符串中允许使用&符号,不是吗?以下是有效的XHTML 1.0 Transitional吗?

<!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

它们被允许在JavaScript字符串中。但是你的JavaScript字符串是HTML的。那里是不允许的。 – Gumbo 2010-06-17 13:01:39

+0

http://validator.w3.org/#validate_by_input – 2010-06-17 13:02:02

回答

1

不,它确实无效。如果您想要在XHTML文件中使用内嵌JavaScript,则需要在CDATA中包装JavaScript。如果你不想这样做,那么你坚持编码&,<和>,这在JavaScript中可能会非常痛苦。

3

所有的浏览器都会采用这种方式,但为了使它有效X(HT)ML,您需要将JavaScript代码放入CDATA块中。

2

即使在JavaScript W3C验证程序不喜欢&符。尝试从验证程序发表评论您的javascript

<!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> 
相关问题