zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JQUERY1.6使用方法四检测浏览器

方法浏览器 使用 检测 JQuery1.6
2023-06-13 09:14:31 时间
userAgent=navigator.userAgent,//UserAgent中文名为用户代理,简称UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

下面分别是各个浏览器的navigator.userAgent

//Mozilla/5.0(Windows;U;WindowsNT5.1;zh-CN)AppleWebKit/533.21.1(KHTML,likeGecko)Version/5.0.5Safari/533.21.1--safari

//Mozilla/5.0(WindowsNT5.1)AppleWebKit/535.1(KHTML,likeGecko)Chrome/13.0.782.220Safari/535.1--chrome

//Opera/9.80(WindowsNT5.1;U;EditionNext;zh-cn)Presto/2.8.158Version/11.50--opera

//Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;.NETCLR2.0.50727;.NETCLR3.0.4506.2152;.NETCLR3.5.30729;InfoPath.1;.NET4.0C;.NET4.0E;InfoPath.2)---ie

//Mozilla/5.0(Windows;U;WindowsNT5.1;zh-CN;rv:1.9.2.24)Gecko/20111103Firefox/3.6.24--firefox



//用于匹配响应浏览器表示的正则

rwebkit=/(webkit)[\/]([\w.]+)/,//webkit
ropera=/(opera)(?:.*version)?[\/]([\w.]+)/,//opera
rmsie=/(msie)([\w.]+)/,//ie
rmozilla=/(mozilla)(?:.*?rv:([\w.]+))?/,//mozilla



通过userAgent,我们可以看到chrome可以通过以下方式匹配到,但是因为和safari一样,都带有“safari”,我们可以把它放在rwebkit.前进行匹配

rchrome=/(Chrome)[\/]([\w.]+)/

同样firefox也可以这么做,把它放在rmozilla前面进行判断

rfirefox=/(Firefox)[\/]([\w.]+)/



uaMatch:function(ua){//主要是获得的浏览器的类型和版本
ua=ua.toLowerCase();//参数为navigator.userAgent。转换成小写,当然也可以在正则匹配里声明不区分大小写(如/(webkit)[\/]([\w.]+)/i)

varmatch=rwebkit.exec(ua)||
ropera.exec(ua)||
rmsie.exec(ua)||
ua.indexOf("compatible")<0&&rmozilla.exec(ua)||
[];//由于使用exec进行匹配,返回的结果是一个整体匹配和响应的子匹配,例如/(Chrome)[\/]([\w.]+)/,match会返回Chrome/13.0.782.220,match[1]得到chrome,match[2]得到13.0.782.220;

return{browser:match[1]||"",version:match[2]||"0"};
}

//uaMatch是jQuery里的一个方法,在这边开始调用并保存浏览器型号browser和版本version

browserMatch=jQuery.uaMatch(userAgent);//调用uaMatch,并返回对象return{browser:match[1]||"",version:match[2]||"0"};
if(browserMatch.browser){
jQuery.browser[browserMatch.browser]=true;//chrome\safari\opera\msie\mozilla,比如我们要在opera浏览器下执行特定操作的时候,可以通过$.browser.opera来判断是不是opera浏览器(true,false)

jQuery.browser.version=browserMatch.version;//浏览器版本
}


if(jQuery.browser.webkit){
jQuery.browser.safari=true;//因为safari是使用AppleWebKit引擎,由于和chrome都有safari,所以在做另外处理
}