js判断浏览器版本和类型

方法一:
对浏览器类型的判断和版本的判断可以合为一体地进行;
通过分析浏览器的userAgent属性来判断;

示例:
IE的userAgent如下:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0);
Firefox userAgent如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1

toLowerCase:用于转为小写字母;
match(regExp),使用指定的正则表达式搜索字符串,方法返回一个数组,记录了在字符串中匹配正则表达式的位置;
match()以正则表达式为参数,exec()以字符串为参数;
此方法:采用了“... ? ... : ...”这样的判断表达式来精简代码。判断条件是一条赋值语句,既完成正则表达式的匹配及结果复制,又直接作为条件判断。而随后的版本信息只需从前面的匹配结果中提取即可,这是非常高效的代码。

<script type="text/javascript">
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);
</script>

 

方法二:
通过运用indexOf()方法来判断,该方法返回一个整数值,指出String对象内字符串的开始位置,如果没有找到字符串,则返回-1,在这里>0 表示找到匹配的字符串;

可将代码分别复制到xhtml文档的head标签内进行测试; 

<script language="JavaScript"> 
    <!-- 
function getOs() 
{ 
    var OsObject = ""; 
   if(navigator.userAgent.indexOf("MSIE")>0) { 
      return "IE"; 
   } 
   if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ 
        return "Firefox"; 
   } 
   if(isSafari=navigator.userAgent.indexOf("Safari")>0) { 
        return "Safari"; 
   } 
   if(isCamino=navigator.userAgent.indexOf("Camino")>0){ 
        return "Camino"; 
   } 
   if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ 
        return "Gecko"; 
   }
} 
alert("您的浏览器类型为:"+getOs()); 
    --> 
</script> 

 

posted on 2010-06-01 15:00  轻舟  阅读(507)  评论(2编辑  收藏  举报