编写XHTML代码的规则要比编写HTML严格得多,例如如下代码:

 <script type="text/javascript">
function compare(a, b){
if(a < b) {
alert("A is less than B");
} else if(a > b){
alert("A is greater than B");
} else{
alert("A is equal to B");
}
}
</script>

  这个代码在HTML中是有效的,但是在XHTML中却是无效的。这里的比较语句 a < b 中的小于号(<)在XHTML中将被当作开始一个新标签解析。但是作为标签的话,小于号后面是不可以有空格的,因此这里就会导致语法错误。

  解决方案:

  ①使用HTML实体(&lt;)代替代码中所有的小于号(<),虽然可以解决问题,但是影响了代码的理解性;

  ②使用CData片段,如下:

 <script type="text/javascript"><![CDATA[
function compare(a, b){
if(a < b) {
alert("A is less than B");
} else if(a > b){
alert("A is greater than B");
} else{
alert("A is equal to B");
}
}
]]></script>

   这个方法可以在兼容XHTML的浏览器中解决这个问题。但是还有不少浏览器不兼容XHTML,因而不支持CData片段。所以,为了兼容所有浏览器,可以采用如下方法:

 <script type="text/javascript">
//<![CDATA[
function compare(a, b){
if(a < b) {
alert("A is less than B");
} else if(a > b){
alert("A is greater than B");
} else{
alert("A is equal to B");
}
}
//]]>
</script>

<script>元素在XHTML中的用法的更多相关文章

  1. 2.1 <script>元素【JavaScript高级程序设计第三版】

    向 HTML 页面中插入 JavaScript 的主要方法,就是使用<script>元素.这个元素由 Netscape 创造并在 Netscape Navigator 2 中首先实现.后来 ...

  2. 找到你的位置(JS在页面中的位置)最常用的方式是在页面中head部分放置<script>元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分

    找到你的位置(JS在页面中的位置) 我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分. 放在<head>部分 最常用的方式是在页 ...

  3. MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动

    MVC图片上传详解   MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...

  4. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  5. AngularJS select中ngOptions用法详解

    AngularJS select中ngOptions用法详解   一.用法 ngOption针对不同类型的数据源有不同的用法,主要体现在数组和对象上. 数组: label for value in a ...

  6. 【HTML5 】<script>元素async,defer异步加载

    原文地址:HTML5′s async Script Attribute原文日期: 2010年09月22日翻译日期: 2013年08月22日 (译者注: 异步加载,可以理解为无阻塞并发处理.) (译者再 ...

  7. JAVA中ArrayList用法

    JAVA中ArrayList用法 2011-07-20 15:02:03|  分类: 计算机专业 |  标签:java  arraylist用法  |举报|字号 订阅     Java学习过程中做题时 ...

  8. HTML5 <script>元素async,defer异步加载

    原文地址:HTML5′s async Script Attribute原文日期: 2010年09月22日翻译日期: 2013年08月22日 (译者注: 异步加载,可以理解为无阻塞并发处理.) (译者再 ...

  9. 总结@ 在C# 中的用法

    一 字符串中的用法 1.地球人都知道 C# 中 字符串常量可以以 @ 开头声名,这样的优点是转义序列“不”被处理,按“原样”输出,即我们不需要对转义字符加上 \ (反斜扛),就可以轻松coding.如 ...

随机推荐

  1. 第十三章:Python の 网络编程进阶(二)

    本課主題 SQLAlchemy - Core SQLAlchemy - ORM Paramiko 介紹和操作 上下文操作应用 初探堡垒机 SQLAlchemy - Core 连接 URL 通过 cre ...

  2. 关于对JavaScript待于完善的一些知识点

    学习JavaScript也存在一段时间,以下是个人对JavaScript中抽象的知识点记录备案,将有待于后面逐个完善...... 1.JavaScript在内存中的体现(内存中栈堆与基本类型及引用类型 ...

  3. 在React中你真的用对了Ajax吗?

    通过AJAX加载初始数据 通过AJAX加载数据是一个很普遍的场景.在React组件中如何通过AJAX请求来加载数据呢?首先,AJAX请求的源URL应该通过props传入:其次,最好在component ...

  4. Android简易记事本

    此次做的Android简易记事本的存储方式使用了SQLite数据库,然后界面的实现比较简单,但是,具有增删改查的基本功能,这里可以看一下效果图,如下: 具体操作就是长按可以删除操作,点击可以进行修改, ...

  5. tomcat 日志切割 catalina.out

    在实际生产环境中,tomcat的 catalina.out日志默认是不切割的,由于看起来很不方便,以及在备份等方面都比较麻烦.是时候切割该文件了. 环境说明 centos 7.3 tomcat 8.5 ...

  6. 名片管理系统v1.1(tools)

    cords_list = []def show_cords(): print("*"*80) print("欢迎使用[名片管理系统]v.1.1") print( ...

  7. EXP导出aud$报错EXP-00008,ORA-00904 解决

    主题:EXP导出aud$报错EXP-00008,ORA-00904 解决 环境:Oracle 11.2.0.4 问题:在自己的测试环境,导出sys用户下的aud$表报错. 1.故障现场 2.跟踪处理 ...

  8. ISE14.7安装教程(转)

    ISE14.7可在百度云中下载链接:http://pan.baidu.com/s/1boQKyzd密码:a0m2 原文链接:http://blog.chinaaet.com/crazybird/p/3 ...

  9. 解析库-beautifulsoup模块

    # -*- coding: utf-8 -*- from bs4 import BeautifulSoup # 安装:pip install beautifulsoup4 # Beautiful So ...

  10. linux(三)之linux常用命令二

    今天就是星期五了,又可以休息两天了.有点小激动,开心.不过还是要加油,因为还有很多东西等着我去学习呢! 七.chmod 作用:修改文件的权限 7.1.命令格式:chmod mode filename ...