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


Posted in Javascript onNovember 23, 2011

userAgent = navigator.userAgent,//User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

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

//Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1 --safari

//Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1 --chrome

//Opera/9.80 (Windows NT 5.1; U; Edition Next; zh-cn) Presto/2.8.158 Version/11.50 --opera

//Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1; .NET4.0C; .NET4.0E; InfoPath.2) ---ie

//Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.24) Gecko/20111103 Firefox/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)

var match = 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,所以在做另外处理
}

Javascript 相关文章推荐
关于Jqzoom的使用心得 jquery放大镜效果插件
Apr 12 Javascript
js模仿jquery的写法示例代码
Jun 16 Javascript
js 自定义个性下拉选择框示例
Aug 20 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
Aug 26 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
Aug 10 Javascript
jquery动态切换背景图片的简单实现方法
May 14 Javascript
Node.js 使用命令行工具检查更新
Jun 08 Javascript
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
深入浅析Vue中的slots/scoped slots
Apr 03 Javascript
this.$toast() 了解一下?
Apr 18 Javascript
Vue-router 报错NavigationDuplicated的解决方法
Mar 31 Javascript
vue项目打包后请求地址错误/打包后跨域操作
Nov 04 Javascript
JQuery1.6 使用方法三
Nov 23 #Javascript
jQuery1.6 使用方法二
Nov 23 #Javascript
jQuery1.6 使用方法一
Nov 23 #Javascript
JS 表单验证大全
Nov 23 #Javascript
JavaScript中的16进制字符(改进)
Nov 21 #Javascript
日期处理的js库(迷你版)--自建js库总结
Nov 21 #Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
Nov 21 #Javascript
You might like
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
javascript函数中的arguments参数
2010/08/01 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
nodejs初始化init的示例代码
2018/10/10 NodeJs
iview的table组件自带的过滤器实现
2019/07/12 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
浅谈Python中数据解析
2015/05/05 Python
对Python中的@classmethod用法详解
2018/04/21 Python
python实现一个简单的ping工具方法
2019/01/31 Python
django query模块
2019/04/20 Python
Django框架 querySet功能解析
2019/09/04 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
python和php哪个更适合写爬虫
2020/06/22 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
《长城》教学反思
2014/02/14 职场文书
精神文明单位申报材料
2014/05/02 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
2014年施工员工作总结
2014/11/18 职场文书
先进工作者申报材料
2014/12/23 职场文书
首次购房证明
2015/06/19 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
Python中文纠错的简单实现
2021/07/07 Python
JS的深浅复制详细
2021/10/16 Javascript