Помощник InlineScript не всегда встраивает скрипты в CDATA - PullRequest
2 голосов
/ 01 апреля 2011

Я обнаружил, что:

$actionController->view->inlineScript()->appendScript("\n".'// script here'."\n");

Не всегда будет вставлять скрипт в CDATA.

С помощью документа XHTML вы получите следующий вывод:

<script type="text/javascript">
    //<![CDATA[

// script here

    //]]>
</script>

С HTML-типом документа вы получите:

<script type="text/javascript">
    //<!--

// script here

    //-->
</script>

Это действительно правильно? Разве CDATA не должен использоваться и в HTML?

1 Ответ

1 голос
/ 01 апреля 2011

Разве CDATA не должен использоваться и в HTML?

Я собирался ответить большим жирным "Нет!" ... но я был бы неправ.

HTML 4 на самом деле является SGML «приложением» (подумайте «диалект»). SGML является предшественником XML. SGML имеет"1013 *" помеченный раздел ", но вещи становятся немного сложными , когда вы пытаетесь определить, что это на самом деле означает.

HTML 5 сохраняет синтаксис раздела CDATA . Это немного удивило меня, поскольку они старались изо всех сил отделить синтаксис HTML от SGML. HTML 5 может быть представлен либо как его собственная разметка, либо как XML .

Теперь, несмотря на все сказанное, вам совершенно не нужно нуждаться в для использования разделов CDATA в обычных документах HTML, тогда как вы обнаружите, что можете анализировать ошибки, если забудете об этом в документе XML .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...