<script>元素在XHTML中的用法

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

 1 <script type="text/javascript">
 2     function compare(a, b){
 3         if(a < b) {
 4             alert("A is less than B");
 5         } else if(a > b){
 6             alert("A is greater than B");
 7         } else{
 8             alert("A is equal to B");
 9         }
10     }
11 </script>

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

解决方案:

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

  ②使用CData片段,如下:

 1 <script type="text/javascript"><![CDATA[
 2     function compare(a, b){
 3         if(a < b) {
 4             alert("A is less than B");
 5         } else if(a > b){
 6             alert("A is greater than B");
 7         } else{
 8             alert("A is equal to B");
 9         }
10     }
11 ]]></script>

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

 1 <script type="text/javascript">
 2 //<![CDATA[
 3     function compare(a, b){
 4         if(a < b) {
 5             alert("A is less than B");
 6         } else if(a > b){
 7             alert("A is greater than B");
 8         } else{
 9             alert("A is equal to B");
10         }
11     }
12 //]]>
13 </script>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏tiane12

DISCUZ!X3.2 升级后UCENTER、UC_SERVER正确密码却无法登录后台的解决方法

1957
来自专栏Albert陈凯

CentOS6.8_Spark单机部署

首先需要JDK 下载安装JDK 下载spark wget https://d3kbcqa49mib13.cloudfront.net/spark-1.6.3-b...

3046
来自专栏我是攻城师

理解Vmware虚拟机的网络模式

命名方式VMnet0,VMnet1,VMnet......以此类推,默认情况下在vm里面已经有一些映射如下:

44510
来自专栏我是攻城师

理解Vmware虚拟机的网络模式

像物理交换机一样,虚拟交换机将虚拟网络连接在一起,故而也被称为虚拟网络 命名方式VMnet0,VMnet1,VMnet......以此类推,默认情况下在vm里面...

1173
来自专栏CSDN技术头条

编译器LLVM3.8发布

LLVM编译器发布3.8版本了,主要是对以前版本各项性能的优化,以及对之前版本的升级。最新的发布日志可以查看这里。 这次发布的主要变化有: 这次版本要求...

1817
来自专栏owent

LLVM + Clang + Libcxx + Libcxxabi 工具链编译

LLVM和Clang工具链的生成配置文件写得比较搓,所以略微麻烦,另外这个脚本没有经过多环境测试,不保证在其他Linux发行版里正常使用。

691
来自专栏Youngxj

[教程]让你电脑右下角显示你女票名字

1311
来自专栏游戏杂谈

node.js使用mysql模块的坑

  之前用node.js写的订餐系统,很容易挂掉,一直也没想去解决它。今天看了一下,试了试,原因是在连接数据库的时候没有对error事件进行处理,导致程序一直挂...

1133
来自专栏IT开发技术与工作效率

东软邮箱设置 NeuSoft OutLook

4144
来自专栏云计算教程系列

如何在Debian 7上安装MySQL和phpMyAdmin

phpMyAdmin是一个Web应用程序,它提供了一个GUI来帮助MySQL数据库管理。它支持多个MySQL服务器。

1833

扫码关注云+社区