php - InlineScript 助手并不总是将脚本嵌入 CDATA

标签 php html zend-framework xhtml

我发现:

$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/

相关文章:

php - (太多)太多 View 导致问题

php - MySQLi 查询只返回一行

java - FileUpload isFormField() 在提交文件时返回 true

php - Zend Db SQLITE 设置

javascript - 在 PHP 循环中动态创建 jQuery listview

php数据库连接/选择

javascript - 仅在第一次执行函数 onload

javascript - 单击另一个div时如何添加li类

php - 将上传的视频公开在 YouTube 上

git - Zend Framework 1.x git 存储库