2010-02-20 191 views
1

我有一些JavaScript嵌入在像這樣特殊字符

<html> 
    <head> 
     <script> 
      // and the script runs here 
     </script> 
    </head> 
    <body></body> 
</html> 

的HTML文件,它有這樣的

if((os == 'Mac')&&((br == 'Safari')||(br == 'Chrome'))) 

一切一行去OK(這意味着腳本作品),但the validator尖叫:

...字符「&」是第一個字母分隔符的呃,只是當作數據
...此消息可能出現幾種情況:
- 你試圖在您的頁面中的「<」字:你應該轉義爲「<」
- 您使用一個非轉義的&符號「&」:這可能在某些情況下有效,但建議使用「&」,這總是安全的。
- 另一種可能是您忘記關閉前一個標籤中的引號。

將&全部替換爲& amp似乎是荒謬的。我怎樣才能擺脫那個錯誤?

回答

5

如果使用XHTML,你需要一個CDATA section中附上內嵌腳本:

<script type="text/javascript"> 
// <![CDATA[ 
    document.write("&"); 
// ]]> 
</script> 

延伸閱讀:

+0

地獄耶謝謝。這似乎很有趣,我必須逃避'<![CDATA ['東西 – phunehehe 2010-02-20 16:19:35

+1

那是因爲你試圖寫一些既XHTML又足夠接近HTML的東西,當你告訴瀏覽器它是text/html而不是應用/ XHTML + XML。這是更加努力,那麼它是值得IMO,所以我堅持編寫HTML 4.01。 – Quentin 2010-02-20 16:27:46

+1

...我仍然使用XHTML,但是堅持使用外部腳本處理任何大量的代碼。無論哪種方式,避免顯式的瀏覽器嗅探。 – bobince 2010-02-20 17:44:42