我发现:
$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>
这真的是正确的吗?不应该在 HTML 中也使用 CDATA 吗?
最佳答案
Shouldn't CDATA be used also in HTML?
我正要用一个大胖子回答“不!” ...但我错了。
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 中忘记它,您会发现自己容易解析错误文档。
关于php - InlineScript 助手并不总是将脚本嵌入 CDATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511466/