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 相关文章推荐
Jquery AJAX 用于计算点击率(统计)
Jun 30 Javascript
cument.execCommand()用法深入理解
Dec 04 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
Oct 16 Javascript
node.js中的fs.readlinkSync方法使用说明
Dec 17 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
Feb 26 Javascript
Javascript中的包装类型介绍
Apr 02 Javascript
javascript实现label标签跳出循环操作
Mar 06 Javascript
详解webpack多页面配置记录
Jan 22 Javascript
一文了解vue-router之hash模式和history模式
May 31 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
Nov 04 Javascript
jQuery实现增删改查
Dec 22 jQuery
使用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
Js之软键盘实现(js源码)
2007/01/30 Javascript
javascript之函数直接量(function(){})()
2007/06/29 Javascript
firefo xml 读写实现js代码
2009/06/11 Javascript
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
详解Python中类的定义与使用
2017/04/11 Python
python使用RNN实现文本分类
2018/05/24 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python list多级排序知识点总结
2019/10/23 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
中式餐厅创业计划书范文
2014/01/23 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
科技馆观后感
2015/06/08 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Python if else条件语句形式详解
2022/03/24 Python