QWrap的浏览器检测

有时需要根据不同的浏览器,做不同的事。
这就需要我们对浏览器以及版本作检测。
QWrap的Browser主要代码如下。

var QW={};
/**
* @class Browser js的运行环境,浏览器以及版本信息。(Browser仅基于userAgent进行嗅探,存在不严谨的缺陷。)
* @singleton
* @namespace QW
*/
QW.Browser
=function(){
var na = window.navigator,
ua
= na.userAgent.toLowerCase(),
browserTester
= /(msie|webkit|gecko|presto|opera|safari|firefox|chrome|maxthon)[ \/]([\d.]+)/ig,
Browser
= {platform: na.platform};
ua.replace(browserTester,
function(a,b,c){
var bLower=b.toLowerCase();
Browser[bLower]
=c;
});
if(Browser.opera) {//Opera9.8后版本号位置变化
ua.replace(/opera.*version\/([\d.]+)/, function(a,b){Browser.opera=b;});
}
if(Browser.msie){
Browser.ie
= Browser.msie;
var v = parseInt(Browser.msie);
Browser.ie6
= v==6;
Browser.ie7
= v==7;
Browser.ie8
= v==8;
Browser.ie9
= v==9;
}
return Browser;
}();
if(QW.Browser.ie){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}

测试代码:

View Code
<html>
<body>
<script>
var QW={};
/**
* @class Browser js的运行环境,浏览器以及版本信息。(Browser仅基于userAgent进行嗅探,存在不严谨的缺陷。)
* @singleton
* @namespace QW
*/
QW.Browser
=function(){
var na = window.navigator,
ua
= na.userAgent.toLowerCase(),
browserTester
= /(msie|webkit|gecko|presto|opera|safari|firefox|chrome|maxthon)[ \/]([\d.]+)/ig,
Browser
= {platform: na.platform};
ua.replace(browserTester,
function(a,b,c){
var bLower=b.toLowerCase();
Browser[bLower]
=c;
});
if(Browser.opera) {//Opera9.8后版本号位置变化
ua.replace(/opera.*version\/([\d.]+)/, function(a,b){Browser.opera=b;});
}
if(Browser.msie){
Browser.ie
= Browser.msie;
var v = parseInt(Browser.msie);
Browser.ie6
= v==6;
Browser.ie7
= v==7;
Browser.ie8
= v==8;
Browser.ie9
= v==9;
}
return Browser;
}();
if(QW.Browser.ie){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}
</script>

<script>
function print(o) {
var html=[];
for(var i in o) html.push('('+(typeof o[i])+') '+i+' : '+o[i]);
document.write(html.join(
'<br/>'));
}
print(QW.Browser);
</script>
</body>
</html>

检测结果如下:

posted on 2011-02-12 14:28  JKisJK  阅读(927)  评论(0编辑  收藏  举报

导航