`
一湖碧波
  • 浏览: 54604 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

javascript CDATA的意义

阅读更多

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实体&lt;、&gt;和&quot;替换它们:

 

<script type="text/javascript">
function compare(a,b)
{
if (a &lt;b)
   {alert(&quot;a小于b&quot;);}  
else if (a&gt;b)
   {alert(&quot;a大于b&quot;);}
else
   {alert(&quot;a等于b&quot;);}
}
</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代码。

 

转自:http://www.cnblogs.com/scugzbc/archive/2008/07/13/1242063.html

分享到:
评论

相关推荐

    javascript语句中的CDATA标签的意义

    ### JavaScript语句中的CDATA标签的意义 #### 一、引言 在现代Web开发中,JavaScript是一种必不可少的编程语言,它不仅被广泛应用于浏览器端的脚本编写,还常常与HTML和CSS结合使用来构建动态网页。然而,在某些...

    如何正确地在XHTML文档中使用JavaScript和CSS

    CDATA区段告诉XML解析器,其中的内容应被视为字符数据而不是代码,这样就可以包含任何字符,包括那些在JavaScript和CSS中具有特殊意义的字符。 当处理JavaScript中的注释时,要特别注意连续的两个横杠(--),因为...

    XML应用开发(软件品牌)-1期 1.4 课堂实践-XML文档中使用字符数据段.doc

    总的来说,通过学习XML文档中使用字符数据段,我们可以更有效地处理和存储包含特殊字符或需要保持原始格式的数据,这对于提升软件的稳定性和数据处理能力具有重要意义。在软件品牌相关的XML应用开发中,掌握这一技能...

    老鱼 浅谈javascript面向对象编程

    封装:javascript中创建对象的模式中,个人认为通过闭包才算的上是真正意义上的封装,所以首先我们先来简单介绍一下闭包,看下面这个例子: 代码如下: [removed]// &lt;![CDATA[ function myInfo(){ var name =”...

    初学Javascript的一些总结

    ### 初学JavaScript的重要知识点概览 #### 一、脚本执行时机 JavaScript是一种广泛使用的编程语言,尤其在Web开发领域...这些基础知识是构建复杂Web应用的基础,对于进一步学习高级JavaScript技术和框架具有重要意义。

    解析XML特殊字符方法

    XML中有五个预定义的特殊字符实体,它们是用来代替那些在XML中具有特殊意义的字符的: - `&amp;` 表示 `&` - `&lt;` 表示 ` - `&gt;` 表示 `&gt;` - `&quot;` 表示 `"` - `&apos;` 表示 `'` 例如,如果你要直接在XML...

    AnyChart使用(英文改为中文)

    ### AnyChart预加载器使用详解:英文到中文的转换与操作流程 AnyChart是一款功能强大的...通过合理运用预加载器,不仅可以优化用户体验,还能提升网站的整体性能和响应速度,对于提高用户满意度和留存率具有重要意义。

    40 种网页技巧

    以上技巧展示了从用户界面优化到安全防护的一系列方法,对于构建高效、安全的网页应用具有重要意义。然而,需要注意的是,在实际应用中应充分考虑用户需求和浏览器兼容性,避免过度限制而影响用户体验。

    WEB程序设计模拟试题1,2,3

    - `&lt;b&gt;`标签用于定义粗体文本,它没有语义意义,仅用于强调文本。 2. **Java与JavaScript的关系**: - Java是一种编译型语言,主要用于开发桌面应用和企业级服务器端应用。 - JavaScript是一种解释型语言,主要...

    DWR.xml配置文件说明书(含源码)

    仅仅通过反射方法没有办法知道集合元素中的类型,所以上面的两个converter能将任何集合转换成相对javascript而言有意义的对象.然而没有办法将不同的集合类类型分别采用不同的转换方法.因为没有办法完全自动进行转换,...

Global site tag (gtag.js) - Google Analytics