2015-05-05 09:07:32
昨天晚上加班加到了两点半,困扰我最大的就是浏览器的兼容问题。无奈,一些网页效果只能通过判断是何种浏览器来进行选择不同的方法来解决了。网上大堆资料都有一个关键词是 navigator.appName,但是这个方法获取的浏览器的名字只有两种要么是IE要么就是Netscap,倒是可以用来判断是否使用了IE,但是我想获取具体的浏览器产品名字比如 Firefox,Chrome等。所以只好通过navigator.userAgent,但是这个字符串是非常长的,分析他的特征,通过正则表达式来解决这个问题是不错的方法。
1) 获取浏览器名字+版本字符串
function getBrowserInfo() { var agent = navigator.userAgent.toLowerCase() ;
var regStr_ie = /msie [\d.]+;/gi ; var regStr_ff = /firefox\/[\d.]+/gi var regStr_chrome = /chrome\/[\d.]+/gi ; var regStr_saf = /safari\/[\d.]+/gi ; //IE if(agent.indexOf("msie") > 0) { return agent.match(regStr_ie) ; }
//firefox if(agent.indexOf("firefox") > 0) { return agent.match(regStr_ff) ; }
//Chrome if(agent.indexOf("chrome") > 0) { return agent.match(regStr_chrome) ; }
//Safari if(agent.indexOf("safari") > 0 && agent.indexOf("chrome") < 0) { return agent.match(regStr_saf) ; }
}
(2)然后获取版本号
var browser = getBrowserInfo() ; //alert(browser); var verinfo = (browser+"").replace(/[^0-9.]/ig,"");