专栏首页一个小程序员的成长笔记<script>元素在XHTML中的用法

<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 条评论
登录 后参与评论

相关文章

  • Canvas 剪切图片

    /** * 剪切图像 */ function initDemo8(){ var canvas = document.getElementById("...

    就只是小茗
  • CSS3弹性盒布局

    使用自适应的窗口弹性盒布局 可以使div总宽度等于浏览器宽度,而且可以随着浏览器的改变而改变。 1 <!DOCTYPE html> 2 <html la...

    就只是小茗
  • Canvas 图片平铺设置

    /** * 图片平铺 */ function initDemo7(){ var canvas = document.getElementById("...

    就只是小茗
  • Markdown——test

    类 Setext 形式是用底线的形式,利用 = (最高阶标题)和 - (第二阶标题),例如:

    shirayner
  • 6.2Python文件的操作(二)

    py3study
  • python3-交互与字符串格式化

    py3study
  • Numpy统计计算、数组比较,看这篇就够了

    如上述例子所示,axis = 1计算的是行的和,结果以列的形式展示。axis = 0计算的是列的和,结果以行的形式展示。

    华章科技
  • 前端学习(20)~css布局(十三)

    relative、absolute、fixed这三个属性,可以结合 z-index 来设置层级。

    Vincent-yuan
  • java日志commons-logging/log4j/slf4j/logBack需要知道的几件事

    如果对于commons-loging、log4j、slf4j、LogBack等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望...

    一个会写诗的程序员
  • Ways to Use Icons on Android (1)

    最近对IconFont特别感兴趣,通过使用IconFont一些常见的制作精良的小图标就可以直接在代码中非常方便的使用,免去了找图标并添加到项目中的很多麻烦。本系...

    宅男潇涧

扫码关注云+社区

领取腾讯云代金券