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 相关文章推荐
JS跨域代码片段
Aug 30 Javascript
SOSO地图JS画出标注和中心点以html形式运行
Aug 09 Javascript
jquery的live使用注意事项
Feb 18 Javascript
dreamweaver 8实现Jquery自动提示
Dec 04 Javascript
javascript自定义右键弹出菜单实现方法
May 25 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
Apr 26 Javascript
jQuery焦点图左右转换效果
Dec 12 Javascript
浅谈JavaScript的计时器对象
Dec 26 Javascript
JavaScript中利用构造器函数模拟类的方法
Feb 16 Javascript
javascript实现计算指定范围内的质数示例
Dec 29 Javascript
解决axios post 后端无法接收数据的问题
Oct 29 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
Feb 20 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类
2006/11/27 PHP
PHP数组内存耗用太多问题的解决方法
2010/04/05 PHP
php&amp;mysql 日期操作小记
2012/02/27 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
JS与框架页的操作代码
2010/01/17 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
Python编程求质数实例代码
2018/01/31 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
python 字典套字典或列表的示例
2019/12/16 Python
python的列表List求均值和中位数实例
2020/03/03 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
电工工作职责范本
2014/02/22 职场文书
学校评语大全
2014/05/06 职场文书
淘宝活动总结范文
2014/06/26 职场文书
市场营销计划书
2015/01/17 职场文书
装配车间主任岗位职责
2015/04/08 职场文书