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 Object的extend是一个常用的功能
Dec 02 Javascript
jquery操作select option 的代码小结
Jun 21 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
Aug 26 Javascript
Json实现异步请求提交评论无需跳转其他页面
Oct 11 Javascript
多种JQuery循环滚动文字图片效果代码
Jun 23 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
Oct 24 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
小程序实现搜索框功能
Mar 26 Javascript
Swiper.js实现移动端元素左右滑动
Sep 08 Javascript
jQuery实现消息弹出框效果
Dec 10 jQuery
viewer.js实现图片预览功能
Jun 24 Javascript
vue+Element-ui前端实现分页效果
Nov 15 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
CodeIgniter生成静态页的方法
2016/05/17 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
jQuery 使用手册(四)
2009/09/23 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
python获取指定网页上所有超链接的方法
2015/04/04 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
关于Assembly命名空间的三个面试题
2015/07/23 面试题
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
小班秋游活动方案
2014/02/22 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
golang 实现并发求和
2021/05/08 Golang
nginx访问报403错误的几种情况详解
2022/07/23 Servers