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 相关文章推荐
Google (Local) Search API的简单使用介绍
Nov 28 Javascript
JS设置获取cookies的方法
Jan 26 Javascript
js的隐含参数(arguments,callee,caller)使用方法
Jan 28 Javascript
原生JavaScript编写俄罗斯方块
Mar 30 Javascript
vue实现列表的添加点击
Dec 29 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
Vue.js上下滚动加载组件的实例代码
Jul 17 Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 Javascript
Vue全局loading及错误提示的思路与实现
Aug 09 Javascript
vue中的v-if和v-show的区别详解
Sep 01 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 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
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
PHP 裁剪图片
2021/03/09 PHP
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
Node.js实现文件上传
2016/07/05 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
python中 * 的用法详解
2019/07/10 Python
python在不同条件下的输入与输出
2020/02/13 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
django form和field具体方法和属性说明
2020/07/09 Python
python 元组和列表的区别
2020/12/30 Python
解决python3输入的坑——input()
2020/12/05 Python
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
联强国际笔试题面试题
2013/07/10 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
中式面点餐厅创业计划书
2014/01/29 职场文书
法律进学校实施方案
2014/03/15 职场文书
安全负责人任命书
2014/06/06 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python