代码之家  ›  专栏  ›  技术社区  ›  Darryl Hein IrishChieftain

我应该使用<!HTML5中的[CDATA[…]>

  •  76
  • Darryl Hein IrishChieftain  · 技术社区  · 15 年前

    我很确定 <![CDATA[...]]> 节可以用在XHTML5中,但是HTML5呢?

    4 回复  |  直到 12 年前
        1
  •  56
  •   hollsk    12 年前

    这个 CDATA 结构根本不是针对HTML的,而是针对XML的。

    人们有时在HTML中使用它们 script 标签,因为它消除了它们转义某些特殊字符的需要。尽管(对于HTML 4或5),但它决不是一项要求。

    编辑: 在这里,我们打开了2002年的一个发霉的旧蠕虫罐头,讨论您是否将XHTML作为 text/html 或作为 application/xhtml+xml 就像你假设到:—)

        2
  •  22
  •   Community Mohan Dere    9 年前

    从同一页 @pst linked to :

    Element-specific parsing for script and style tags , XHTML-HTML兼容性指南 :“以下带转义的代码可以确保脚本和样式元素在XHTML和HTML(包括较旧的浏览器)中都有效。”

    最大向后兼容性:

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

    更简单的版本,有点与“老得多的浏览器”不兼容:

    <script>//<![CDATA[
       ...
    //]]></script>
    

    所以, CDATA 可用于HTML5,建议在 XHTML-HTML兼容性指南 . 这对…有用 polyglot HTML/XML/XHTML pages 在开发过程中创建并解析为XML,但作为HTML5提供更好的跨浏览器兼容性。 Polyglot pages has their benefits ,我自己也使用过它,因为它更容易调试XML/XHTML5。例如,Google Chrome将对无效的XML/XHTML L5(包括 character escaping ,而与HTML5相同的页面将“只起作用”,即“可能起作用”。

        3
  •  14
  •   rmarscher    14 年前

    规范似乎解决了这个问题。脚本和样式标记被视为“原始文本元素”。它们不需要或不允许使用CDATA。CDATA仅与“外来内容”一起使用,即mathml和svg。注意,对脚本标记中的内容有一些限制——基本上,您不能将 var x = '</script>' 因为它会关闭标签,需要像他的答案中提到的那样被拆分。 http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictions

        4
  •  5
  •   user166390    14 年前

    也许看到: http://wiki.whatwg.org/wiki/HTML_vs._XHTML

    <![CDATA[…]>是虚假的评论。

    在HTML中, <script> 已经被保护了——这就是为什么有时它必须被写为 a = "<" + "/script>" ,以避免混淆浏览器。注意代码是有效的 外部 HTML格式的CDATA。

    推荐文章