Javacript中的“<![CDATA[”代码块

摘自:《JavaScript核心技术》

看下面一段代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<title>TestJS</title>
</head>

<body>
12345

<script type="text/javascript">

//<![CDATA[
var msg = '<h3>Hello world!</h3>';
document.writeln(msg);
//]]>

</script>

</body>
</html>

 

脚本块包含在一个XHTML CDATA块之中。XHTML处理器不会解释CDATA块中所含的数据。

使用CDATA块的原因是:CDATA处理器会解释诸如header(H3)的开始和结束等标记,即便这些标记包含在JavaScript字符串中也要解释。如果不使用CDATA,虽然页面可能会显示正确,但当你进行页面验证时,会看到有验证错误。

那些通过使用SRC属性而导入到页面中的JavaScript,会被假设为CDATA兼容,因而不需要用CDATA块。但是,内联的或嵌入的JS应当使用CDATA来隔开,尤其是当它包含在BODY元素之中时。

对于大多数浏览器,你还需要使用JavaScript注释符号(//)来隐藏CDATA块的开始标记和结束标记。否则,JavaScript的内容可能不被正确解析(如IE6)。

 

posted on 2009-03-26 14:32  王丹小筑  阅读(373)  评论(0编辑  收藏  举报

导航