之前一直使用检查navigator.userAgent字符串来判断浏览器类型

switch(navigator.userAgent.toLowerCase().indexOf("msie"))//firefox|opera|safari|msie
{
    case(-1):
        alert("DOM浏览器");
    default:
        alert("IE浏览器");
}
f  

今天在看一篇文章中提到用户在某些浏览器可以更改userAgent,这样就不能单纯使用这个方法来检查浏览器。在实际使用中一般检查最多的是ie浏览器与标准dom浏览器的区别,这样可以使用window.addEventListener来判断这两种类型的浏览器

if(typeof window.addEventListener==="function"){
    alert("DOM浏览器");
}else{
    alert("IE");
}
 

高手写的一个检测浏览器的代码

var isIE = !!(window.attachEvent && !window.opera);
var isOpera = !!window.opera;
var isSafari = navigator.userAgent.indexOf(‘AppleWebKit/’) > -1;
var isMoz = navigator.userAgent.indexOf(‘Gecko’) > -1 && navigator.userAgent.indexOf(‘KHTML’) == -1;
var isMobileSafari = !!navigator.userAgent.match(/Apple.*Mobile.*Safari/);

Related posts:

  1. js中的冒泡事件与事件监听 js中“冒泡事件”并不是能实际使用的花哨技巧,它是一种对js事件执行顺序的机制,“冒泡算法”在编程里是一个经典问题,冒泡算法里面的冒泡应该说是交换更加准确;js里面的“冒泡事件”才是真正意义上的“冒泡”,它从DOM最低层逐层遍历树,然后附加相应事件。...
  2. ie与ff下的event event是ie自带的一个对象,而ff中不存在该对象,只能通过传递参数的方式来模拟event,:( 另外ie中使用srcElement去获得事件触发源,ff下使用target。因此使用这两个对象时需要做相关的浏览器兼容。 ...

以上关联文章由 Yet Another Related Posts Plugin 提供支持。