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 相关文章推荐
jQuery jcrop插件截图使用方法
Nov 20 Javascript
jquery制作弹窗提示窗口代码分享
Mar 02 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
Aug 01 Javascript
Listloading.js移动端上拉下拉刷新组件
Aug 04 Javascript
微信小程序 Record API详解及实例代码
Sep 30 Javascript
JavaScript浮点数及运算精度调整详解
Oct 21 Javascript
vue.js利用defineProperty实现数据的双向绑定
Apr 28 Javascript
JavaScript实现省市县三级级联特效
May 16 Javascript
关于微信小程序bug记录与解决方法
Aug 15 Javascript
在微信小程序中使用图表的方法示例
Apr 25 Javascript
element-ui中Table表格省市区合并单元格的方法实现
Aug 07 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
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
jQuery实现日历效果
2020/09/11 jQuery
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
scrapy爬虫实例分享
2017/12/28 Python
Python中存取文件的4种不同操作
2018/07/02 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
数据库面试要点基本概念
2013/10/31 面试题
关于圣诞节的广播稿
2014/01/26 职场文书
行政办公室岗位职责
2014/03/18 职场文书
校园环保建议书
2014/05/14 职场文书
服务口号大全
2014/06/11 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
政工师工作总结2015
2015/05/26 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
零基础学java之循环语句的使用
2022/04/10 Java/Android