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 相关文章推荐
关于二级域名下使用一级域名下的COOKIE的问题
Nov 07 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
Nov 28 Javascript
jQuery设置和移除文本框默认值的方法
Mar 09 Javascript
jQuery使用$.each遍历json数组的简单实现方法
Apr 18 Javascript
Html5+jQuery+CSS制作相册小记录
Dec 30 Javascript
关于Vue的路由权限管理的示例代码
Mar 06 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 Javascript
Vue中插入HTML代码的方法
Sep 21 Javascript
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
Vue中axios拦截器如何单独配置token
Dec 27 Javascript
小程序点餐界面添加购物车左右摆动动画
Sep 23 Javascript
原生js实现自定义滚动条
Jan 20 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
php 函数中使用static的说明
2012/06/01 PHP
PHP进程同步代码实例
2015/02/12 PHP
js右键菜单效果代码
2007/07/21 Javascript
用js实现in_array的方法
2013/11/05 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
vue中echarts3.0自适应的方法
2018/02/26 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
python实现名片管理系统项目
2019/04/26 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
python日志模块logbook使用方法
2019/09/19 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
Python 使用office365邮箱的示例
2020/10/29 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
软件测试面试题
2015/10/21 面试题
《小猫刮胡子》教学反思
2014/02/21 职场文书
进步之星获奖感言
2014/02/22 职场文书
反对邪教标语
2014/06/30 职场文书
励志演讲稿300字
2014/08/21 职场文书
会计人员演讲稿
2014/09/11 职场文书
上班迟到检讨书
2015/05/06 职场文书