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类
Sep 08 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
Jan 15 Javascript
Node.js中的模块机制学习笔记
Nov 04 Javascript
js实现瀑布流的三种方式比较
Jun 28 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
JS实现json的序列化和反序列化功能示例
Jun 13 Javascript
使用 Node.js 开发资讯爬虫流程
Jan 07 Javascript
基于Vue2x的图片预览插件的示例代码
May 14 Javascript
AngularJS中的作用域实例分析
May 16 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 Javascript
Bootstrap table 服务器端分页功能实现方法示例
Jun 01 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
yii插入数据库防并发的简单代码
2017/05/27 PHP
jQuery 自定义函数写法分享
2012/03/30 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
jQuery的slideToggle方法实例
2013/05/07 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Django返回json数据用法示例
2016/09/18 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
python文件及目录操作代码汇总
2020/07/08 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
入党申请人的自我鉴定
2013/12/01 职场文书
优秀教师先进事迹
2014/01/22 职场文书
高级编程求职信模板
2014/02/16 职场文书
物控部经理职务说明书
2014/02/25 职场文书