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

开发 前端
本文向大家简单描述一下JS脚本兼容问题的解决方案,对于存在JS脚本兼容性的地方,解决方法是针对不同的平台使用不同的特性或是用替代方法实现,这是上策。

这里和大家分享一下解决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了,那我们就忽略它;如果无法解决但问题又比较严重,那我们就应停止脚本的运行,并明确告诉用户发生的问题!
 

【编辑推荐】

  1. 解决JS在firefox和IE下差异问题
  2. 解析JS中实现打印的两大方式
  3. 盘点JavaScript中Function三大用途
  4. 技术分享 如何识别控制DHTML和JS中的页面元素
  5. JavaScript调试工具解决IE6等多版本共存问题 

 

 

责任编辑:佚名 来源: cnw.com.cn
相关推荐

2010-09-16 11:08:50

JSIEFirefox

2010-08-18 14:14:41

IE6IE7FF

2010-09-15 10:32:54

IE8兼容

2010-08-11 15:17:51

浏览器兼容性问题

2012-05-09 10:08:41

跨机房

2010-08-24 09:36:03

DIV+CSS

2010-10-09 08:57:32

AjaxIE8

2010-03-30 16:04:34

Linux Nginx

2010-10-09 15:22:25

IE7.JS

2010-09-27 13:14:42

JVM内存限制

2010-09-09 15:44:21

IEFFCSS

2011-04-12 16:51:29

Javascript兼容性

2022-06-21 21:47:13

数据系统

2010-10-08 13:09:38

JavaScript数

2010-05-31 12:53:56

Nagios apac

2010-02-06 14:54:11

C++指针漂移

2010-04-28 19:24:17

Hp unix

2011-03-23 16:38:28

LAMP

2010-09-30 14:29:14

IE7.JS

2021-01-13 10:18:29

SocketNetty粘包
点赞
收藏

51CTO技术栈公众号