What is the meaning of CDATA
Gurus,
I am self taught. There's a lot of what you enlightened ones call basic I know nothing about.
Reading this jQuery Tutorial, I noticed this tag (for lack of better word): "CDATA" as shown here (third line from the top):
<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){
$(thi开发者_如何学JAVAs).parents("ul").prev(".thebody").toggle();
event.preventDefault();
});
});
//]]></script>
What is the meaning of CDATA? Are there tags similar to CDATA?
With <![CDATA[
you can embed JS in XML (and XHTML) documents without the need to replace special XML characters like <
, >
, &
, etc by XML entities <
, >
, &
etc to prevent that the XML syntax get malformed and that you get errors like The entity name must immediately follow the '&' in the entity reference. The general recommendation is however to put JS code in its own .js
file which you then include by a <script src>
.
The <![CDATA[
is not needed in plain HTML documents. Unless you're developing with a XML based view technology like Facelets (for JSF) or ASP.NET MVC, there's absolutely no need to declare your HTML as XHTML. Just a <!DOCTYPE html>
would suffice
The reason for CDATA
in this scenario is to allow the document to be loaded as straight XML. In XML the //
will be treated as text instead of a comment and hence it will then see CDATA
as an XML tag.
Wikipedia sums it up really well:
In an XML document or external parsed entity, a
CDATA
section is a section of element content that is marked for the parser to interpret as only character data, not markup. ACDATA
section is merely an alternative syntax for expressing character data; there is no semantic difference between character data that manifests as a CDATA section and character data that manifests as in the usual syntax in which<
and&
would be represented by<
and&
, respectively.
The way I look at it, CDATA
keeps the XML parser from sterilizing your code (making it display as just text, not code).
I hope that explains some of it...
CDATA is character data which is ignored by the validator.
You wrap things like javascript in CDATA tags so the your html validates (of course this is uncessary if you follow the more recent XHTML standards).
This is a special sequence to allow inline javascript with special characters while still allowing the page to pass as valid xhtml. More details here. Essentially, don't worry about its exact meaning, but do put it in there!
精彩评论