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 相关文章推荐
客户端 使用XML DOM加载json数据的方法
Sep 28 Javascript
javascript获取选中的文本的方法代码
Oct 30 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
Sep 22 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
Apr 16 Javascript
jQuery实现验证年龄简单思路
Feb 24 Javascript
js判断一个字符串是以某个字符串开头的简单实例
Dec 27 Javascript
vue时间格式化实例代码
Jun 13 Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
Dec 09 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
Jan 18 Javascript
JS常用排序方法实例代码解析
Mar 03 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
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 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
探讨如何把session存入数据库
2013/06/07 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
python使用psutil模块获取系统状态
2016/08/27 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
Python简单读取json文件功能示例
2017/11/30 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
python适合做数据挖掘吗
2020/06/16 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
Python基于template实现字符串替换
2020/11/27 Python
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
工作决心书范文
2014/03/11 职场文书
电力安全事故反思
2014/04/27 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
放飞理想主题班会
2015/08/14 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android