2010-12-02 143 views
16

大師,CDATA的意思是什麼

我是自學的。有很多東西開明的致電基本我一無所知。

讀了這jQuery Tutorial,我注意到了這個標籤(因爲缺乏更好的詞):「CDATA」,如下所示(從上往下第三行):

<script src="http://jquery.com/src/jquery-latest.js"></script> 
<script> 
//<![CDATA[  
$(document).ready(function(){ 
$(".article .thebody").hide(); 
$("#container .article ul") 
     .prepend("<li class='readbody'><a href='' title='Read the article'>Read Body</a></li>"); 

$(".actions li.readbody a").click(function(event){ 
$(this).parents("ul").prev(".thebody").toggle(); 
event.preventDefault(); 
    }); 
    }); 
//]]></script> 

什麼是CDATA的意思?是否有類似於CDATA的標籤?

+17

CDATA。 CDATA運行。運行數據運行! – 2010-12-02 20:51:59

回答

15

隨着<![CDATA[可以embed JS in XML (and XHTML) documents無需更換special XML characters<>&等通過XML實體&lt;&gt;&amp;等,以防止XML語法得到異常的,你得到這樣的錯誤The entity name must immediately follow the '&' in the entity reference。然而,一般建議是將JS代碼放入其自己的.js文件中,然後將其包含在<script src>中。在純HTML文檔中不需要<![CDATA[。除非你使用像Facelets(用於JSF)或ASP.NET MVC這樣基於XML的視圖技術開發,否則絕對不需要聲明你的HTML爲XHTML。只需一個<!DOCTYPE html>就足夠了

+0

我已經開始使用Netbeans 6.9編寫一個項目。我所有的代碼(html/PHP)都以<!DOCTYPE html>開頭。感謝您的輸入。 – Chris 2010-12-02 21:10:34

+0

不客氣。 – BalusC 2010-12-02 21:13:13

3

在這種情況下CDATA的原因是允許將文檔作爲直接XML加載。在XML中,//將被視爲文本而不是註釋,因此它會將CDATA視爲XML標記。

2

CDATA是驗證器忽略的字符數據。

你在JavaScript中包裝了CDATA標籤,以便你的html驗證(當然,如果你遵循更新的XHTML標準,這是不必要的)。

1

這是一個特殊的序列,允許內聯JavaScript與特殊字符,同時仍允許頁面作爲有效的xhtml傳遞。 More details here。從本質上講,不要擔心它的確切含義,但要把它放在那裏!

3

維基百科概括起來真的很好:

在XML文檔或外部解析實體,CDATA部分是被標記爲解析器來解釋,因爲只有字符數據的元素內容的部分,而不是標記。 A CDATA部分僅僅是用於表達字符數據的替代語法;在表現爲CDATA部分的字符數據和字符數據之間不存在語義差異,其中字符數據表現爲分別通過&lt;&amp;分別代表<&的通常語法。

我看它的方式,CDATA保持XML解析器消毒您的代碼(使其顯示爲只是文本,而不是代碼)。

我希望能解釋一些它...