2010-06-17 36 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> 
相關問題