CData 全称 character data
(char发音是’K…我之前一直发错,囧..)
顾名思义,符号数据,也就是说,在这里,所有的数据都会被忠实的执行,而不会被转义处理等.
如果你常常看或者写内嵌于页面的js的话,你会发现,有的时候,js脚本会出现那么如何正确使用呢.
<![CDATA[... YOUR CODE HERE! ...]]>
首先,我们要了解这个东西为神马会出现,它的出现是为了解决xhtml解释器自作多情的转义js中的某些符号,比如"<"。
<script type="text/javascript">
if (i<0){ do something you like.}
</script>
这样的话,是不会出错的。
但是如果你为了美观,比如我,常常手贱打几个空格在运算符之间。(当然是能打空格的单个操作符~)
<script type="text/javascript">
if (i < 0){ do something you like.}
</script>
不出意外的话,你的脚本会挂,也就是说你之后有写神马的话,功能直接死掉,不会继续执行了。
原因是什么呢。 “<“在xhtml中是作为新元素开始标签使用的,而且标签的话,是不允许在”<“和"标签名"之间添加空格滴。 你见过”< a"嘛?如果见过,那么是某个大意的家伙打错了。。。
问题找到,解决方法呢,文艺青年决定使用转义的方法,避开这个问题。
<script type="text/javascript">
if (i < 0){do something countine which is you like;}
</script>
但是呢,对于我这种二点的青年来说,是可以接受的,因为我常常接触转义字符。 可是呢,对于文艺青年来说,代码可读性没有了,有木有! 那么怎么办呢,CDATA就来了。 比如大家可以这么做
<script>
<![CDATA[
if (i < 0 ){ai za za di;}
]]>
</script>
可是出于尊敬那些不认识CDATA标签的浏览器,我们需要进一步修饰一下。 将CDATA注释一下,防止不认识CDATA的浏览器崩个溃神马的。
<script>
//<![CDATA[
if (i < 0 ){ai za za di;}
//]]>
</script>
接着其实还可以更进一步,既然你想到了浏览器可能不支持CDATA,那么浏览器是不是还有可能不支持js呢。 很有可能吧,我们继续做。
<script>
<!--
//<![CDATA[
if (i < 0 ){ai za za di;}
//]]>
//-->
</script>
写到这里,这篇日志也就写完了,不过印象中,某本权威不推荐在现在的浏览器环境中继续注释掉脚本了…
求路过的各位指正。