jquery uaMatch源代码


复制代码 代码如下:

// Useragent RegExp
rwebkit = /(webkit)[ \/]([\w.]+)/,
ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
rmsie = /(msie) ([\w.]+)/,
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
// Keep a UserAgent string for use with jQuery.browser
userAgent = navigator.userAgent,

// For matching the engine and version of the browser
browserMatch,

// Use of jQuery.browser is frowned upon.
// More details: http://docs.jquery.com/Utilities/jQuery.browser
uaMatch: function( ua ) {
ua = ua.toLowerCase();

var match = rwebkit.exec( ua ) ||
ropera.exec( ua ) ||
rmsie.exec( ua ) ||
ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
[];

return { browser: match[1] || "", version: match[2] || "0" };
}
browserMatch = jQuery.uaMatch( userAgent );
if ( browserMatch.browser ) {
jQuery.browser[ browserMatch.browser ] = true;
jQuery.browser.version = browserMatch.version;
}

分析:浏览器之间的兼容性问题,这个一个历史遗留问题。痛苦的是,作为一个前端开发人员得为这个兼容性问题买单。我们做开发时,往往要为每种浏览器作出局部的代码调整才能在相应的浏览器中良好的运行。我所知道的方法有两种:1.浏览器检测;2.对象检测。
  在jQuery 中只要用行uaMatch()这个函数。用到的关键点有:1.regExp.exec(str);2.navigator.userAgent;
  一,regExp.exec(str);用正则表达式来在字符串中查找,并返回一个数组,这个数组的0元素是整个正则匹配,1元素是第一个子匹配,2元素是第二个子匹配,如此类推。
  二,navigator.userAgent:是javascript BOM的重要的对象之一,它主要用来返回当前的浏览器和操作系统的信息。
    例如:firefox的navigator.userAgetn 的字符串:"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"
       IE8的navigator.userAgetn的字符串:"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)".
    从各个浏览器的正则表达式可知,第一个子匹配为浏览器的名字,第二个为版本。



相关阅读:
用javascript实现源代码的隐藏与解密的方法
PHP中创建并处理图象
一个小助手批处理实例代码
改Windows系统字体颜色
Linux Ubuntu服务器版操作系统介绍
符合W3C网页标准的iframe标签的使用方法
z-blog评论留言的引用按钮写法详解
系统瘦身:适当调节系统还原占用磁盘空间的大小
Oracle数据库灾难防护的核心技术
ASP.NET教程:抽象工厂模式
WordPress的MySQL连接出错监测方法
使用Windows7巧妙管理文件夹的图文介绍
使用存储过程的5个好处
Hyper-V技术解析--Windows Server 2008新特性
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 游东方明珠塔250字 小学六年级写人作文350字 小学二年级作文600字:哎 守望这个季节 小学四年级作文750字:变 最美人瑞这样走来 读《培根随笔》有感1000字 维权是最好的职场心理疏导 小学五年级作文500字:丢钱记 建军节军民共建联谊 建筑工程项目管理专业实习报告 又甜又香的白兰瓜1000字 我的小院 歌曲 2017年高中生入团申请书汇编 领导干部兰考县考察学习焦裕禄精神心得体会五篇 先吃苦,后尝甜——观《喜羊羊与灰太狼之兔年顶呱呱》有感900字 读《记忆深处》有感而发 2016地质勘探个人工作总结 谁说男子不如女作文600字 小学四年级作文400字:我爱我的家乡—广州 著名商标代理合同 阳光体育活动冬季长跑有感500字 运动会田径比赛工作总结 心灵的脚步_人生感悟 刘备与曹操最大的差距是逆商 计生局关怀行动先进事迹材料 领导和你相处怎么那么难 蜘蛛侠故事宝典的读书笔记范文选集 假如你离开了我 加强基础工作 建设本质安全型露天煤矿 老婆谣:不听老婆言,吃亏在眼前 三八妇女节演讲主题 利刃作文600字 天空向我诉苦 回乡随笔(三)-南京路步行街 qq伤感女生个性签名 小学五年级作文450字:加油,你我他! 大学生物业实践报告 一辈子都忘不掉的优美语句 校规下胆颤的我们 忘了所有忘不了你 关门山的“奇” 小学五年级作文500字:感谢您妈妈 崖山之后,华夏沧桑依旧作文700字 南京那个城市 老师妈妈 恶狗抢食 唯知己者,如自己也 秋天的郊外作文300字

Copyright © 2016 phpStudy |