龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

JS脚本兼容性问题解决方案

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
这里和大家分享一下解决JS脚本兼容的几个小技巧,关于JS脚本兼容性我们第一个要考虑的问题应该是运行的平台是否支持客户端脚本?通常的做法是将脚本主体包括在一条HTML注释中。

这里和大家分享一下解决JS脚本兼容的几个小技巧,关于JS脚本兼容性我们第一个要考虑的问题应该是运行的平台是否支持客户端脚本?通常的做法是将脚本主体包括在一条HTML注释中。

解决JS脚本兼容的几个小技巧

对于存在JS脚本兼容性的地方,解决方法是针对不同的平台使用不同的特性或是用替代方法实现,这是上策;但总有一些时候我们用上述方法无法解决时,我们可以看下这个问题是否严重,如果不严重,那我们就可以忽略它。

1.使用HTML注释掉脚本

关于JS脚本兼容性我们第一个要考虑的问题应该是运行的平台是否支持客户端脚本?通常的做法是将脚本主体包括在一条HTML注释中:

  1. <scriptlanguagescriptlanguage="javascript"> 
  2. <!--  
  3. document.write(newDate());  
  4. //--> 
  5. </script> 
  6.  

这样不支持JS脚本的浏览器会忽略<script>和</script>标签并把其他代码当作一条HTML注释处理,而支持脚本的浏览器则把"<!--"这句当作一条HTML注释语句,其他语句正常执行,HTML注释结尾"-->"用"//"进行单行注释。

2.特性、平台检测

当我们要使用的特性和平台有关时,就得先进行检测再使用,检测的方式有两种:一种是直接检测平台是否支持该特性,另一种是检测平台类型再使用相应的特性。代码如下:

  1. <scriptlanguagescriptlanguage="javascript"> 
  2. <!--  
  3. //a.检测是否支持特性  
  4. if(s.split){  
  5. a=s.split(",");//支持,直接使用  
  6. }else{  
  7. a=s.mysplit(",");//不支持,使用替代方法  
  8. }  
  9. //b.平台检测  
  10. if(navigator.appName.indexOf("Microsoft")!=-1){  
  11. //使用IE支持的特性  
  12. }  
  13. //--> 
  14. </script> 
  15.  

3.替代?忽略?停止?

对于存在JS脚本兼容性的地方,解决方法是针对不同的平台使用不同的特性或是用替代方法实现,这是上策;但总有一些时候我们用上述方法无法解决时,我们可以看下这个问题是否严重,如果不严重,那我们就可以忽略它,比如一个特性在Netscape2上无效,但现在基本上没人使用Netscape2了,那我们就忽略它;如果无法解决但问题又比较严重,那我们就应停止脚本的运行,并明确告诉用户发生的问题!
 

精彩图集

赞助商链接