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


文章插图
这样可以使JavaScript代码更精简些 。当然,可读性稍差一些,就看你是重视效率还是重视可维护性了 。
使用不同特征来判断浏览器的方法,虽然在速度上比用正则表达式分析userAgent要来的快,不过这些特征可能会随浏览器版本而变化 。比如,一种浏览器本来独有的特性取得了市场上的成功,其他浏览器也就可能跟着加入该特性,从而使该浏览器的独有特征消失,导致我们的判断失败 。因此,相对比较保险的做法是通过解析userAgent中的特征来判断浏览器类型 。何况,反正判断版本信息也需要解析浏览器的userAgent的 。
通过分析各类浏览器的userAgent信息,不难得出分辨各类浏览器及其版本的正则表达式 。而且,对浏览器类型的判断和版本的判断完全可以合为一体地进行 。于是,我们可以写出下面的代码:

JavaScript 判断浏览器类型及版本

文章插图
其中,采用了“... ? ... : ...”这样的判断表达式来精简代码 。判断条件是一条赋值语句,既完成正则表达式的匹配及结果复制,又直接作为条件判断 。而随后的版本信息只需从前面的匹配结果中提取即可,这是非常高效的代码 。
以上的代码都是为了打造前端框架所做的预研,并在五大浏览器上测试通过 。今后,判断某种浏览器只需用if(Sys.ie)或 if(Sys.firefox)等形式,而判断浏览器版本只需用if(Sys.ie == '8.0')或if(Sys.firefox == '3.0')等形式,表达起来还是非常优雅的 。
前端框架项目已经启动,一切就看过程和结果了...
原创:李战(leadzen) 阿里软件 2008-9-6 杭州
为了让大家更尽兴脚本之家小编特多整理几个:
JavaScript 判断浏览器类型及版本

文章插图
比较全的判断代码
JavaScript 判断浏览器类型及版本

文章插图

推荐阅读