HTML 中的 CDATA 是什么?
JavaScript 标签和 HTML 中的 CDATA 有什么用?
<script type="text/javascript">
// <![CDATA[
// ]]>
</script>
What is the use of CDATA inside JavaScript tags and HTML?
<script type="text/javascript">
// <![CDATA[
// ]]>
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
XML 文档中的所有文本都将由解析器进行解析。
但是 CDATA 部分内的文本将被解析器忽略。
CDATA - (未解析的)字符数据
在程序输出中使用 CDATA
简短的 SGML 教程。
另请参阅有关 CDATA 的维基百科条目。
All text in an XML document will be parsed by the parser.
But text inside a CDATA section will be ignored by the parser.
CDATA - (Unparsed) Character Data
Use of CDATA in program output
A brief SGML tutorial.
Also, see the Wikipedia entry on CDATA.
CDATA
在 HTML 中没有任何意义。CDATA
是一个 XML 构造,它将通常为 #PCDATA(已解析的字符数据)的标记内容设置为 #CDATA(即未解析的字符数据)。它仅在 XHTML 中相关且有效。它用在
script
标记中以避免解析<
和&
。在 HTML 中,这是不需要的,因为在 HTML 中,script
已经是#CDATA。CDATA
has no meaning at all in HTML.CDATA
is an XML construct which sets a tag's contents that is normally #PCDATA - parsed character data, to be instead taken as #CDATA, that is, non-parsed character data. It is only relevant and valid in XHTML.It is used in
script
tags to avoid parsing<
and&
. In HTML, this is not needed, because in HTML,script
is already #CDATA.CDATA 已已过时。
请注意,CDATA 部分不应在 HTML 中使用;它们仅适用于 XML。
因此,请勿在 HTML 5 中使用它。
https://developer.mozilla.org/en-US/docs/Web/API/CDATASection#Specifications
CDATA is Obsolete.
Note that CDATA sections should not be used within HTML; they only work in XML.
So do not use it in HTML 5.
https://developer.mozilla.org/en-US/docs/Web/API/CDATASection#Specifications
来自http://en.wikipedia.org/wiki/CDATA:
From http://en.wikipedia.org/wiki/CDATA:
一种编写 HTML 和 XHTML 公共子集的方法,
希望获得更大的可移植性。
在 HTML 中,
是一种神奇的转义符,直到
出现。
所以你可以写:
并且
不会被视为标签。这就是为什么诸如:之类的字符串
必须像这样进行转义:
请参阅: 为什么要拆分
但是 XML(以及 XHTML,它是 XML 的“子集”,与 HTML 不同),没有那种魔力:
将被视为标签。是 XHTML 的表达方式:
添加
//
是为了使 CDATA 在 HTML 中也能正常工作。在 HTML 中
并不神奇,因此它将由 JavaScript 运行。所以用
//
来注释掉它。XHTML 也可以看到
//
,但会将其视为空注释行,这不是问题:也就是说:
与
脚本
协调文档类型 :但这违反了互联网的黄金法则
A way to write a common subset of HTML and XHTML
In the hope of greater portability.
In HTML,
<script>
is magic escapes everything until</script>
appears.So you can write:
and
<br/>
won't be considered a tag.This is why strings such as:
must be escaped like:
See: Why split the <script> tag when writing it with document.write()?
But XML (and thus XHTML, which is a "subset" of XML, unlike HTML), doesn't have that magic:
<br/>
would be seen as a tag.<![CDATA[
is the XHTML way to say:The
//
is added to make the CDATA work well in HTML as well.In HTML
<![CDATA[
is not magic, so it would be run by JavaScript. So//
is used to comment it out.The XHTML also sees the
//
, but will observe it as an empty comment line which is not a problem:That said:
<!DOCTYPE html>
vs<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
script
syntaxBut that violates the golden rule of the Internet:
CDATA 是文档字符集中的字符序列,并且可能包括字符实体。用户代理应按如下方式解释属性值:
用字符替换字符实体,
忽略换行符,
将每个回车符或制表符替换为一个空格。
CDATA is a sequence of characters from the document character set and may include character entities. User agents should interpret attribute values as follows:
Replace character entities with characters,
Ignore line feeds,
Replace each carriage return or tab with a single space.