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 表格工具集
Apr 25 Javascript
让浏览器非阻塞加载javascript的几种方法小结
Apr 25 Javascript
一个简单的js树形菜单
Dec 09 Javascript
jquery入门—数据删除与隔行变色以及图片预览
Jan 07 Javascript
精通JavaScript的this关键字
May 28 Javascript
易被忽视的js事件问题总结
May 14 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
AngularJS实现ajax请求的方法
Nov 22 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
JavaScript使用Math.random()生成简单的验证码
Jan 21 Javascript
详解Vue前端对axios的封装和使用
Apr 01 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
Mar 04 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图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
Python最长公共子串算法实例
2015/03/07 Python
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
深入Python函数编程的一些特性
2015/04/13 Python
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
详解Python3 基本数据类型
2019/04/19 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
一些Solaris面试题
2013/03/22 面试题
煤矿班组长竞聘书
2014/03/31 职场文书
提拔干部考察材料
2014/05/26 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
女方离婚起诉书
2015/05/18 职场文书
农村老人去世追悼词
2015/06/23 职场文书
MySQL创建管理RANGE分区
2022/04/13 MySQL