js如何判断不同系统的浏览器类型


Posted in Javascript onOctober 28, 2013
function Env(){ 
var ua=navigator.userAgent.toLowerCase(); 
function check(r){ 
return r.test(ua); 
} 
return { 
//判断环境,操作系统、浏览器、是否是https连接等 
DOC : document, 
isStrict : DOC.compatMode == "CSS1Compat" , 
isOpera : check(/opera/) , 
isChrome : check(/\bchrome\b/) , 
isWebKit : check(/webkit/) , 
isSafari : !check(/\bchrome\b/)&& check(/safari/) , 
isSafari2 : !check(/\bchrome\b/)&& check(/safari/)&& check(/applewebkit\/4/), // unique to Safari 2 
isSafari3 : !check(/\bchrome\b/)&& check(/safari/)&& check(/version\/3/), 
isSafari4 : !check(/\bchrome\b/)&& check(/safari/)&& check(/version\/4/), 
isIE : !check(/opera/) && check(/msie/) , 
isIE7 : !check(/opera/) && check(/msie/)&& check(/msie 7/) , 
isIE8 : !check(/opera/) && check(/msie/)&& check(/msie 8/) , 
isIE6 : !check(/opera/) && check(/msie/)&&!check(/msie 7/)&& !check(/msie 8/), 
isGecko : !check(/webkit/)&& check(/gecko/), 
isGecko2 : check(/webkit/)&& check(/rv:1\.8/), 
isGecko3 : check(/webkit/)&& check(/rv:1\.9/), 
isBorderBox : !check(/opera/) && check(/msie/)&& DOC.compatMode != "CSS1Compat", 
isWindows : check(/windows|win32/), 
isMac : check(/macintosh|mac os x/), 
isAir : check(/adobeair/), 
isLinux : check(/linux/), 
isSecure : /^https/i.test(window.location.protocol), 
/** 
* 是否为空,如果允许allowBlank=true,则当v=''时返回true 
*/ 
isEmpty : function(v, allowBlank){ 
return v === null || v === undefined || ((this.isArray(v) && !v.length)) || (!allowBlank ? v === '' : false); 
}, /** 
* 是否为数组类型 
*/ 
isArray : function(v){ 
return toString.apply(v) === '[object Array]'; 
}, 
/** 
* 是否为日期类型 
*/ 
isDate : function(v){ 
return toString.apply(v) === '[object Date]'; 
}, 
/** 
* 是否为Object类型 
*/ 
isObject : function(v){ 
return !!v && Object.prototype.toString.call(v) === '[object Object]'; 
}, 
/** 
* 判断是否是函数 
*/ 
isFunction : function(v){ 
return toString.apply(v) === '[object Function]'; 
}, 
/** 
* 判断是否为数字 
*/ 
isNumber : function(v){ 
return typeof v === 'number' && isFinite(v); 
}, 
/** 
* 判断字符串类型 
*/ 
isString : function(v){ 
return typeof v === 'string'; 
}, 
/** 
* 判断布尔类型 
*/ 
isBoolean : function(v){ 
return typeof v === 'boolean'; 
}, 
/** 
* 判断是否为dom元素 
*/ 
isElement : function(v) { 
return !!v && v.tagName; 
}, 
/** 
* 判断是否已定义 
*/ 
isDefined : function(v){ 
return typeof v !== 'undefined'; 
} 
}

然后var env = env(); 用env. 来取的所需的类型。
Javascript 相关文章推荐
JavaScript 解析读取XML文档 实例代码
Jul 07 Javascript
使用IE6看老赵的博客 jQuery初探
Jan 17 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
Oct 30 Javascript
javascript关于继承的用法汇总
Dec 20 Javascript
H5用户注册表单页 注册模态框!
Sep 17 Javascript
文件上传插件SWFUpload的使用指南
Nov 29 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
微信小程序如何获知用户运行小程序的场景教程
May 17 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
Jan 03 Javascript
Vue路由管理器Vue-router的使用方法详解
Feb 05 Javascript
javascript 函数的暂停和恢复实例详解
Apr 25 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 Javascript
使用js的replace()方法查找字符示例代码
Oct 28 #Javascript
js中的replace方法使用介绍
Oct 28 #Javascript
js之事件冒泡和事件捕获详细介绍
Oct 28 #Javascript
javascript抖动元素的小例子
Oct 28 #Javascript
replace()方法查找字符使用示例
Oct 28 #Javascript
JS 如何获取radio选中后的值及不选择取radio的值
Oct 28 #Javascript
Document:getElementsByName()使用方法及示例
Oct 28 #Javascript
You might like
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
帝国cms目录结构分享
2015/07/06 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
js数组操作常用方法
2014/05/08 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
JavaScript new对象的四个过程实例浅析
2018/07/31 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
js实现聊天对话框
2020/02/08 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
django框架cookie和session用法实例详解
2019/12/10 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
Python常用外部指令执行代码实例
2020/11/05 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
室内设计专业个人的自我评价
2013/10/19 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
成人继续教育实施方案
2014/03/01 职场文书
支教个人总结
2015/03/04 职场文书
出生证明格式
2015/06/15 职场文书
使用Apache Camel表达REST服务的方法
2022/06/10 Servers
css样式important规则的正确使用方式
2022/06/10 HTML / CSS