这里和大家分享一下解决JS脚本兼容的几个小技巧,关于JS脚本兼容性我们***个要考虑的问题应该是运行的平台是否支持客户端脚本?通常的做法是将脚本主体包括在一条HTML注释中。
解决JS脚本兼容的几个小技巧
对于存在JS脚本兼容性的地方,解决方法是针对不同的平台使用不同的特性或是用替代方法实现,这是上策;但总有一些时候我们用上述方法无法解决时,我们可以看下这个问题是否严重,如果不严重,那我们就可以忽略它。
1.使用HTML注释掉脚本
关于JS脚本兼容性我们***个要考虑的问题应该是运行的平台是否支持客户端脚本?通常的做法是将脚本主体包括在一条HTML注释中:
- <scriptlanguagescriptlanguage="javascript">
- <!--
- document.write(newDate());
- //-->
- </script>
这样不支持JS脚本的浏览器会忽略<script>和</script>标签并把其他代码当作一条HTML注释处理,而支持脚本的浏览器则把"<!--"这句当作一条HTML注释语句,其他语句正常执行,HTML注释结尾"-->"用"//"进行单行注释。
2.特性、平台检测
当我们要使用的特性和平台有关时,就得先进行检测再使用,检测的方式有两种:一种是直接检测平台是否支持该特性,另一种是检测平台类型再使用相应的特性。代码如下:
- <scriptlanguagescriptlanguage="javascript">
- <!--
- //a.检测是否支持特性
- if(s.split){
- a=s.split(",");//支持,直接使用
- }else{
- a=s.mysplit(",");//不支持,使用替代方法
- }
- //b.平台检测
- if(navigator.appName.indexOf("Microsoft")!=-1){
- //使用IE支持的特性
- }
- //-->
- </script>
3.替代?忽略?停止?
对于存在JS脚本兼容性的地方,解决方法是针对不同的平台使用不同的特性或是用替代方法实现,这是上策;但总有一些时候我们用上述方法无法解决时,我们可以看下这个问题是否严重,如果不严重,那我们就可以忽略它,比如一个特性在Netscape2上无效,但现在基本上没人使用Netscape2了,那我们就忽略它;如果无法解决但问题又比较严重,那我们就应停止脚本的运行,并明确告诉用户发生的问题!
【编辑推荐】
- 解决JS在firefox和IE下差异问题
- 解析JS中实现打印的两大方式
- 盘点JavaScript中Function三大用途
- 技术分享 如何识别控制DHTML和JS中的页面元素
- JavaScript调试工具解决IE6等多版本共存问题