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 相关文章推荐
JS读取XML文件示例代码
Nov 15 Javascript
Javascript让DEDECMS告别手写Tag
Sep 01 Javascript
jQuery+HTML5实现图片上传前预览效果
Aug 20 Javascript
javascript实现Email邮件显示与删除功能
Nov 21 Javascript
第九章之路径分页标签与徽章组件
Apr 25 Javascript
浅谈时钟的生成(js手写简洁代码)
Aug 20 Javascript
node.js中axios使用心得总结
Nov 29 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
May 15 Javascript
vue input实现点击按钮文字增删功能示例
Jan 29 Javascript
解决layUI的页面显示不全的问题
Sep 20 Javascript
jquery 时间戳转日期过程详解
Oct 12 jQuery
vue内置组件component--通过is属性动态渲染组件操作
Jul 28 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 empty函数判断mysql表单是否为空
2010/04/12 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
React-intl 实现多语言的示例代码
2017/11/03 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
JS实现密码框效果
2020/09/10 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
python获取外网IP并发邮件的实现方法
2017/10/01 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
微信跳一跳python代码实现
2018/01/05 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
美国在线珠宝商店:SZUL
2017/02/11 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
优秀村官事迹材料
2014/01/10 职场文书
户外活动策划方案
2014/03/12 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
项目备案申请报告
2015/05/15 职场文书
药房管理制度范本
2015/08/06 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
python状态机transitions库详解
2021/06/02 Python