产品世界当前位置:菲娱2国际 > 产品世界 > >

JavaScript 判断浏览器类型及版本(4)

  
  

  
  这样可以使JavaScript代码更精简些。当然,可读性稍差一些,就看你是重视效率还是重视可维护性了。

  
  使用不同特征来判断浏览器的方法,虽然在速度上比用正则表达式分析userAgent要来的快,不过这些特征可能会随浏览器版本而变化。比如,一种浏览器本来独有的特性取得了市场上的成功,其他浏览器也就可能跟着加入该特性,从而使该浏览器的独有特征消失,导致我们的判断失败。因此,相对比较保险的做法是通过解析userAgent中的特征来判断浏览器类型。何况,反正判断版本信息也需要解析浏览器的userAgent的。

  
  通过分析各类浏览器的userAgent信息,不难得出分辨各类浏览器及其版本的正则表达式。而且,对浏览器类型的判断和版本的判断完全可以合为一体地进行。于是,我们可以写出下面的代码:  
  

  
  
  var Sys = {};  var ua = navigator.userAgent.toLowerCase();  var s;  (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :  (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :  (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :  (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :  (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;  //以下进行测试  if (Sys.ie) document.write('IE: ' + Sys.ie);  if (Sys.firefox) document.write('Firefox: ' + Sys.firefox);  if (Sys.chrome) document.write('Chrome: ' + Sys.chrome);  if (Sys.opera) document.write('Opera: ' + Sys.opera);  if (Sys.safari) document.write('Safari: ' + Sys.safari);  
  
  

  
  其中,采用了“... ? ... : ...”这样的判断表达式来精简代码。判断条件是一条赋值语句,既完成正则表达式的匹配及结果复制,又直接作为条件判断。而随后的版本信息只需从前面的匹配结果中提取即可,这是非常高效的代码。 (责任编辑:admin)

上一篇:没有了

下一篇:没有了

推荐内容

分享网站

客户服务热线

010-400-12345

在线客服