HTML 中的 CDATA 是什么?

新手上路,请多包涵

JavaScript 标签和 HTML 中的 CDATA 有什么用?

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

// ]]>
</script>

原文由 SexyMF 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

XML 文档中的所有文本都将由解析器解析。

但是解析器将忽略 CDATA 部分中的文本。

CDATA -(未解析的)字符数据

CDATA 一词用于表示不应由 XML 解析器解析的文本数据。

“<”和“&”之类的字符在 XML 元素中是非法的。

”<” 将产生错误,因为解析器将其解释为新元素的开始。

”&” 将产生错误,因为解析器将其解释为字符实体的开始。

一些文本,如 JavaScript 代码,包含很多“<”或“&”字符。为避免错误,脚本代码可以定义为 CDATA。

解析器会忽略 CDATA 部分中的所有内容。

CDATA 部分以“ <![CDATA[ ”开头并以“ ]]> ”结尾

在程序输出中使用 CDATA

如果 Web 浏览器将文档呈现为 HTML,则 XHTML 文档中的 CDATA 部分可能会被不同地解析,因为 HTML 解析器不识别 CDATA 开始和结束标记,也不识别 HTML 实体引用,例如 &lt;<script> 标签内。如果用于显示来自不受信任来源的数据,这可能会导致 Web 浏览器出现渲染问题,并且可能导致跨站点脚本漏洞,因为这两种解析器在 CDATA 部分的结束位置上存在分歧。

一个简短的 SGML 教程

此外,请参阅 CDATA 上的 Wikipedia 条目

原文由 Ahsan Rathod 发布,翻译遵循 CC BY-SA 4.0 许可协议

CDATA 在 HTML 中完全没有意义。

CDATA 是一个 XML 结构,它设置标签的内容,通常是#PCDATA - 已解析的字符数据,而不是#CDATA,即未解析的字符数据。它仅在 XHTML 中相关且有效。

它用于 script 标签以避免解析 <& 。在 HTML 中,这不是必需的,因为在 HTML 中, script 已经是#CDATA。

原文由 Delan Azabani 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题