js判断操作系统、判断浏览器类型、判断数据类型权威方法--extjs源码
来源:互联网 发布:免费开源的实时数据库 编辑:程序博客网 时间:2024/05/22 08:21
在我们日常js编程中经常要用的判断操作系统、判断浏览器类型、判断数据类型等等的操作,一般我们会百度一下,找个方法测试通过,然后就用上了。但是心里面还是有点打鼓,这个方法能在所有情况下运行正常吗??这样简单判断能过滤所有情况吗?随便搜到的方法,还真不敢打包票。
下面的代码是我从extjs3.1的原代码中查的判断方法,大家都知道,像extjs、jQuery这样的js库兼容性还是比较好的,所有库里使用的判断方法也算一个相对来说比较权威的判断方法吧!
我简单的封装成了一个类,如果你只是简单使用其中的个别判断,可以直接copy其中的方法,如果多次使用,则可以直接下载这个源码导入到你的页面,然后evn=new Env();然后这个类就可以到处使用了。
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 : !isChrome && check(/safari/), isSafari2 : isSafari && check(/applewebkit\/4/), // unique to Safari 2 isSafari3 : isSafari && check(/version\/3/), isSafari4 : isSafari && check(/version\/4/), isIE : !isOpera && check(/msie/), isIE7 : isIE && check(/msie 7/), isIE8 : isIE && check(/msie 8/), isIE6 : isIE && !isIE7 && !isIE8, isGecko : !isWebKit && check(/gecko/), isGecko2 : isGecko && check(/rv:1\.8/), isGecko3 : isGecko && check(/rv:1\.9/), isBorderBox : isIE && !isStrict, 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'; }}
--------------------------
如果你对java、swing、各种框架、javascript、css、linux、数据库编程等知识很感兴趣,或者正在从事这些工作,
欢迎加入我的qq技术交流群:java不瘸腿(219345774)
- js判断操作系统、判断浏览器类型、判断数据类型权威方法--extjs源码
- JS判断浏览器类型方法
- JS判断浏览器类型方法
- JS判断浏览器类型方法
- JS判断浏览器类型方法
- JS判断浏览器类型方法
- JS判断浏览器类型方法
- JS判断浏览器类型方法
- 用js判断操作系统和浏览器类型
- 使用JS判断客户端、浏览器、操作系统类型
- 使用JS判断客户端、浏览器、操作系统类型
- 使用JS判断客户端、浏览器、操作系统类型
- js判断当前浏览器类型,判断IE浏览器方法
- js方法判断浏览器终端是哪种操作系统
- ExtJS判断IE浏览器类型
- js判断浏览器类型
- js判断浏览器类型
- js判断浏览器类型
- 当了一份代码 忙活了近一天 新手伤不起啊 ON_COMMAND_RANGE
- js josn 对象转换成字符串
- Error: 17172, Severity: 16 SNIInitialize() failed with error 0x2.
- HGE 系列教材(9) --- GUI(本文未完成)
- WPF Cover Flow Tutorial : Part 6 (bis)
- js判断操作系统、判断浏览器类型、判断数据类型权威方法--extjs源码
- 如何获得SIM卡容量
- tomcat 内存溢出详解
- 数据库存储过程
- Ruby系列文章之7 ---OS X 10.8.1 系统用HomeBrew直接安装ruby
- 总结MVC中file上传图片 Request.Files[0].count=0的问题
- JavaScript 高效编程方法笔记
- 求直线交点 叉积
- 一个优秀程序员要具备的条件