javascript中的CDATA字段
来源:互联网 发布:php 过滤空格 编辑:程序博客网 时间:2024/05/29 04:51
CDATA 内部的所有东西都会被解析器忽略。
假如文本中包含了大量的 "<" 和 "&" 字符 - 就像编程代码中经常出现的情况一样 - 那么这个 XML 元素就可以被定义为一个 CDATA 部分。
CDATA 区段开始于 "<![CDATA[",结束于 "]]>":
<script type="text/javascript">
<![CDATA[
function compare(a,b)
{
if (a < b)
{alert("a小于b");}
else if (a>b)
{alert("a大于b");}
else
{alert("a等于b");}
}
]]>
</script>
在上面的例子中,在 CDATA 区段中的所有东西都会被解析器忽略。
关于 CDATA 区段的注释:
CDATA 区段不能包含字符串 "]]>",所以,CDATA 区段的嵌套是不被允许的。
同时也需要确保在 "]]>" 字符串中没有空格或折行。
为什么要使用CDATA:
XHTML的第二个改变是使用CDATA段。XML中的CDATA段用于声明不应被解析为标签的文本(XHTML也是如此),这样就可以使用特殊字符,如小于(<)、大于(>)、和号(&)和双引号("),而不必使用它们的字符实体。考虑下面的代码:
<script type="text/javascript">
function compare(a,b)
{
if (a < b)
{alert("a小于b");}
else if (a>b)
{alert("a大于b");}
else
{alert("a等于b");}
}
</script>
这个函数相当简单,它比较数字a和b,然后显示消息说明它们的关系。但是,在XHTML中,这段代码是无效的,因为它使用了三个特殊符号,即小于、大于和双引号。要修正这个问题,必须分别用这三个字符的XML实体<、>和"替换它们:
<script type="text/javascript">
function compare(a,b)
{
if (a <b)
{alert("a小于b");}
else if (a>b)
{alert("a大于b");}
else
{alert("a等于b");}
}
</script>
这段代码存在两个问题。首先,开发者不习惯用XML实体编写代码。这使代码很难读懂。其次,在JavaScript中,这种代码实际上将视为有语法错,因为解释程序不知道XML实体的意思。用CDATA段即可以以常规形式(即易读的语法)编写JavaScript代码。正式加入CDATA段的方法如下:
<script type="text/javascript">
<![CDATA[
function compare(a,b)
{
if (a < b)
{alert("a小于b");}
else if (a>b)
{alert("a大于b");}
else
{alert("a等于b");}
}
]]>
</script>
虽然这是正式方式,但还要记住,大多数浏览器都不完全支持XHTML,这就带来主要问题,即这在JavaScript中是个语法错误,因为大多数浏览器还不认识CDATA段。
<script type="text/javascript">
//<![CDATA[
function compare(a,b)
{
if (a < b)
{alert("a小于b");}
else if (a>b)
{alert("a大于b");}
else
{alert("a等于b");}
}
//]]>
</script>
当前使用的解决方案模仿了“对旧浏览器隐藏”代码的方法。使用单行的JavaScript注释"//",可在不影响代码语法的情况下嵌入CDATA段:
现在,这段代码在不支持XHTML的浏览器中也可运行。
但是,为避免CDATA的问题,最好还是用外部文件引入JavaScript代码。
- javascript中的CDATA字段
- javascript生成/解析dom的CDATA类型的字段
- javascript CDATA
- tinxml解析CDATA字段
- tinxml解析CDATA字段
- javascript CDATA的意义
- javascript CDATA的意义
- javascript CDATA的意义
- javascript CDATA的意义
- javascript CDATA的意义
- xml中的CDAta区
- XML 中的CDATA
- xml中的CDATA
- mybatis 中的<![CDATA[ ]]>
- mybatis 中的<![CDATA[ ]]>
- mybatis 中的<![CDATA[ ]]>
- mybatis 中的<![CDATA[ ]]>
- XML中的CDATA标记
- IDA 分析BIOS
- 一种在编译期保证模板类参数T必须实现某函数的方法
- u-boot的Makefile分析(转)
- s3c2410 board.c分析
- s3c lowleve_init.S分析
- javascript中的CDATA字段
- s3c uboot-的start.S详细注解及分析
- WinKawaks模拟器游戏局域网联机
- 简单的冒泡排序
- session cookie等
- C#学习一年了,感觉没学会什么
- Ubuntu安装程序开发所需要的man安装帮助(包含3posix)
- 漂亮的TAB控件
- kmalloc详解