js识别不同浏览器基于userAgent做判断


Posted in Javascript onJuly 29, 2014

检测浏览器,注意浏览器判断顺序,主要是基于userAgent做判断。

//检测浏览器
var client = function(){
var engine = {
ie:0,
gecko:0,
webkit:0,
khtml:0,
opera:0,
ver:null
};
var browser = {
//浏览器
ie: 0,
firefox: 0,
safari: 0,
konq: 0,
opera: 0,
chrome: 0,
ver:null
};
var ua = navigator.userAgent;
//浏览器检测有顺序
if(window.opera){//opera伪装,所以优先检测
engine.ver = browser.ver = window.opera.version();
engine.opera = browser.opera = parseFloat(engine.ver);
} else if(/AppleWebKit\/(\S+)/.test(ua)){
engine.ver = RegExp["$1"];
engine.webkit = parseFloat(engine.ver);


//确定是 Chrome 还是 Safari
if (/Chrome\/(\S+)/.test(ua)){
browser.ver = RegExp["$1"];
browser.chrome = parseFloat(browser.ver);
} else if (/Version\/(\S+)/.test(ua)){
browser.ver = RegExp["$1"];
browser.safari = parseFloat(browser.ver);
} else {
//近似地确定版本号
var safariVersion = 1;
if (engine.webkit < 100){
safariVersion = 1;
} else if (engine.webkit < 312){
safariVersion = 1.2;
} else if (engine.webkit < 412){
safariVersion = 1.3;
} else {
safariVersion = 2;
}


browser.safari = browser.ver = safariVersion;
}

}else if (/KHTML\/(\S+)/.test(ua) || /Konqueror\/([^;]+)/.test(ua)){
engine.ver = browser.ver = RegExp["$1"];
engine.khtml = browser.konq = parseFloat(engine.ver);
}else if (/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)){
engine.ver = RegExp["$1"];
engine.gecko = parseFloat(engine.ver);
//确定是不是 Firefox
if (/Firefox\/(\S+)/.test(ua)){
browser.ver = RegExp["$1"];
browser.firefox = parseFloat(browser.ver);
}
}else if (/MSIE ([^;]+)/.test(ua)){
engine.ver = browser.ver = RegExp["$1"];
engine.ie = browser.ie = parseFloat(engine.ver);
}
return {
engine:engine,
browser: browser
};
}();


//调用

if (client.engine.webkit) { //if it's WebKit 
if (client.browser.chrome){ 
//执行针对 Chrome 的代码 
} else if (client.browser.safari){ 
//执行针对 Safari 的代码 
} 
} else if (client.engine.gecko){ 
if (client.browser.firefox){ 
//执行针对 Firefox 的代码 
} else { 
//执行针对其他 Gecko 浏览器的代码 
} 
}
Javascript 相关文章推荐
JavaScript表单常用验证集合
Jan 16 Javascript
把html页面的部分内容保存成新的html文件的jquery代码
Nov 12 Javascript
javascript实现上传图片并预览的效果实现代码
Apr 11 Javascript
JSON辅助格式化处理方法
Mar 26 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
Feb 04 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
原生js开发的日历插件
Feb 04 Javascript
Angular实现的简单查询天气预报功能示例
Dec 27 Javascript
JS中的防抖与节流及作用详解
Apr 01 Javascript
Node.js 在本地生成日志文件的方法
Feb 07 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
Sep 09 Javascript
让浏览器DOM元素最后加载的js方法
Jul 29 #Javascript
js实现遮罩层划出效果是生成div而不是显示
Jul 29 #Javascript
解释&amp;&amp;和||在javascript中的另类用法
Jul 28 #Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
Jul 28 #Javascript
jQuery内置的AJAX功能和JSON的使用实例
Jul 27 #Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 #Javascript
jquery JSON的解析方式示例介绍
Jul 27 #Javascript
You might like
drupal 代码实现URL重写
2011/05/04 PHP
一段实用的php验证码函数
2016/05/19 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
2016/10/29 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
浅析Python基础-流程控制
2016/03/18 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
python截取两个单词之间的内容方法
2018/12/25 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
Python实现微信表情包炸群功能
2021/01/28 Python
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
维也纳通行证:Vienna PASS
2019/07/18 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
小学生环保演讲稿
2014/04/25 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
入党介绍人意见2015
2015/06/01 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python