js判断当前浏览器类型,判断IE浏览器方法

判断IE浏览器最短方法:var isIE = !-[1,]

原理:[1,]在标准浏览器中返回"1",相当于调用[1,].toString(),在IE中返回"1,"
在这个时候对返回值使用负号强制转换为数字时,标准浏览器返回1,IE则返回NaN,
再对1和NaN取反时,标准浏览器返回false,IE返回true。

js判断浏览器类型

原文基本上没有什么问题,但他的判断方式还不是很严谨。

如:navigator.userAgent.indexOf("Safari")>0,如果"Safari"这个单词出现在userAgent的最前端,那不是就无法得到正确的结果了。应该把 >0 改为 !=-1
然后我对我机子上现有的5个独立内核浏览器做了下测试,发现Opera的userAgent值为"Opera/9.80 (Windows NT 5.1; U; Ed..."
正好印证了刚刚说的。
其实大多时候我们在做浏览器兼容时主要是针对 IE 和 非IE 浏览器,也就是说一般情况下只需要判断是否是IE浏览器即可。
判断当前浏览器类型代码

<script type="text/javascript" >
    <!-- 
function getOs() 
{ 
    var OsObject = ""; 
   if(isIE = navigator.userAgent.indexOf("MSIE")!=-1) { 
        return "MSIE"; 
   } 
   if(isFirefox=navigator.userAgent.indexOf("Firefox")!=-1){ 
        return "Firefox"; 
   } 
   if(isChrome=navigator.userAgent.indexOf("Chrome")!=-1){ 
        return "Chrome"; 
   } 
   if(isSafari=navigator.userAgent.indexOf("Safari")!=-1) { 
        return "Safari"; 
   }  
   if(isOpera=navigator.userAgent.indexOf("Opera")!=-1){ 
        return "Opera"; 
   } 

} 
 alert("type -> "+getOs());
--> 
</script>