在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实体"<",但这样会影响代码的可读性。
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脚本,如果是外部引入的文件,那么就无需如此了。
浙公网安备 33010602011771号