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 相关文章推荐
window.location.hash 属性使用说明
Mar 20 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
Apr 27 Javascript
基于jQuery实现自动轮播旋转木马特效
Nov 02 Javascript
jquery日历插件e-calendar升级版
Nov 10 Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
Three.js入门之hello world以及如何绘制线
Sep 25 Javascript
vue 使用html2canvas将DOM转化为图片的方法
Sep 11 Javascript
vue.js仿hover效果的实现方法示例
Jan 28 Javascript
生产制造追溯系统之在线打印功能
Jun 03 Javascript
小程序实现搜索框功能
Mar 26 Javascript
JS异步处理的进化史深入讲解
Aug 25 Javascript
详解JavaScript作用域、作用域链和闭包的用法
Sep 03 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实现多服务器共享SESSION数据的方法
2007/03/16 PHP
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
php调用KyotoTycoon简单实例
2015/04/02 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
Python常用库大全及简要说明
2020/01/17 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
橄榄树药房:OLIVEDA
2019/09/01 全球购物
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
实习评语大全
2014/04/26 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
大学军训的体会
2014/11/08 职场文书
中班上学期个人总结
2015/02/12 职场文书
大学生十八大感想
2015/08/11 职场文书
重阳节主题班会
2015/08/17 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
一篇文章带你复习java知识点
2021/06/28 Java/Android