在XHTML与HMTL中编写js的区别

在XHTML与HMTL中编写js的区别

以下的语句在HTML中是有效的,但在XHTML中却是无效的。原因在于if语句中的"<",XHTML会把它当做一个新标签来解析。但是作为标签来讲,后面是不能跟空格的,所以就会导致语法错误。

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

 

避免这样的错误有两种方法:
1、一种是将"<"替换为相应的HTML实体"&lt;",但这样会影响代码的可读性。
2、还有就是使用一个CData片段来包含JavaScript代码。

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

 

这样在兼容XHTML的浏览器中是可以实现的,但如果浏览器不兼容XHTML,那就会不支持CData片段。因此需要作如下处理:加注释

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

 

这个适用于在页面嵌入js脚本,如果是外部引入的文件,那么就无需如此了。

posted @ 2012-12-21 09:43  向往天空的鱼  阅读(311)  评论(0)    收藏  举报