В чем смысл CDATA - PullRequest
       7

В чем смысл CDATA

17 голосов
/ 02 декабря 2010

Gurus,

Я самоучка. Многое из того, что вы просветленные называете базовое Я ничего не знаю.

Читая это 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?

Ответы [ 5 ]

16 голосов
/ 02 декабря 2010

С помощью <![CDATA[ вы можете встраивать JS в документы XML (и XHTML) без необходимости замены специальных символов XML , таких как <, >, & и т. д. для сущностей XML &lt;, &gt;, &amp; и т. д., чтобы предотвратить искажение синтаксиса XML и появление ошибок, подобных Имя сущности должно следовать сразу за '&' в ссылке на сущность . Общая рекомендация, однако, заключается в том, чтобы поместить код JS в собственный файл .js, который затем включается в <script src>.

<![CDATA[ не требуется в простых документах HTML. Если вы не разрабатываете технологию представления на основе XML, такую ​​как Facelets (для JSF) или ASP.NET MVC, абсолютно не нужно объявлять HTML как XHTML . Достаточно всего <!DOCTYPE html>

3 голосов
/ 02 декабря 2010

Википедия очень хорошо подводит итог:

В XML-документе или внешнем разобранном объекте раздел CDATA - это раздел содержимого элемента, помеченный синтаксическим анализатором как интерпретируемый только как символьные данные, а не как разметка. Секция CDATA является просто альтернативным синтаксисом для выражения символьных данных; нет семантической разницы между символьными данными, которые проявляются как раздел CDATA, и символьными данными, которые проявляются как в обычном синтаксисе, в котором < и & будут представлены &lt; и &amp; соответственно.

С моей точки зрения, CDATA не позволяет анализатору XML стерилизовать ваш код (заставляя его отображаться как текст, а не код).

Надеюсь, это кое-что объясняет ...

3 голосов
/ 02 декабря 2010

Причиной CDATA в этом сценарии является возможность загрузки документа в виде простого XML.В XML // будет рассматриваться как текст, а не комментарий, и, следовательно, он будет видеть CDATA как тег XML.

2 голосов
/ 02 декабря 2010

CDATA - это символьные данные, которые валидатор игнорирует.

Вы заключаете такие вещи, как javascript, в теги CDATA, чтобы ваш html проверял (конечно, это не нужно, если вы следуете более новым стандартам XHTML).

1 голос
/ 02 декабря 2010

Это специальная последовательность, позволяющая использовать встроенный JavaScript со специальными символами, при этом позволяя странице проходить как действительный xhtml. Подробнее здесь . По сути, не беспокойтесь о его точном значении, но вставьте его туда!

...