我发现了:
$actionController->view->inlineScript()->appendScript("\n".'// script here'."\n");
不会总是将脚本嵌入CDATA中。
使用XHTML doctype,您将获得此输出:
<script type="text/javascript">
//<![CDATA[
// script here
//]]>
</script>
使用HTML文档类型,您将获得:
<script type="text/javascript">
//<!--
// script here
//-->
</script>
这实际上是对的吗? CDATA也不应该在HTML中使用吗?
答案 0 :(得分:1)
不应该在HTML中使用CDATA吗?
我正准备回答一个大胖子“不!” ......但我错了。
HTML 4实际上是一个SGML“应用程序”(想想“方言”)。 SGML是XML的前身。当您尝试定义实际含义时,SGML 确实有<![CDATA[ ... ]]>
“标记的部分”,但是things get a little complex。
HTML 5 keeps the CDATA section syntax。这让我感到很惊讶,因为他们不遗余力地从SGML离开HTML语法。 HTML 5可以是represented either as it's own markup, or as XML。
现在,所有这些都说,你完全不需要 在常规HTML文档中使用CDATA部分,而如果你在XML中忘记它,你会发现自己会解析错误文档。