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 相关文章推荐
判断一个变量是数组Array类型的方法
Sep 16 Javascript
JS 仿腾讯发表微博的效果代码
Dec 25 Javascript
JS 删除字符串最后一个字符的实现代码
Feb 20 Javascript
js获取时间精确到秒(年月日)
Mar 16 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
快速掌握jQuery插件WebUploader文件上传
Nov 07 Javascript
jQuery简易时光轴实现方法示例
Mar 13 Javascript
微信小程序实现分享到朋友圈功能
Jul 19 Javascript
Vue axios设置访问基础路径方法
Sep 19 Javascript
Vue.js样式动态绑定实现小结
Jan 24 Javascript
typescript配置alias的详细步骤
Aug 12 Javascript
javascript实现倒计时提示框
Mar 02 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
在字符串中把网址改成超级链接
2006/10/09 PHP
PHP实现网上点歌(二)
2006/10/09 PHP
php检测url是否存在的方法
2015/04/14 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
VUE中v-on:click事件中获取当前dom元素的代码
2018/08/22 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
Python OpenCV实现视频分帧
2019/06/01 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
python中random模块详解
2021/03/01 Python
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
美德少年事迹材料
2014/01/23 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
高校教师个人总结
2015/02/10 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
高考1977观后感
2015/06/04 职场文书
班级管理经验交流材料
2015/11/02 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS
Apache POI的基本使用详解
2021/11/07 Servers