jquery判断IE 6
来源:互联网 发布:linux 线程 参数 编辑:程序博客网 时间:2024/06/08 12:09
以前我的判断方法一直是版本+版本号: if($.browser.msie&&($.browser.version==6.0))
但发现一个惊天bug。
jquery是根据userAgent的version值正则判断的,但是如果在windows2008k中,会把windows NT 6.0误认为是ie6.0,导致将ie8误认成ie6。
$.browser方法jquery官方已经不赞成使用了。建议的方法是$.support,但我把所有的属性值都测试完毕后发现没有一个能只检测出IE6的,最后发现$.support.style在IE6和IE7中返回值为false。那么取他们属性的交集便可以准确判断IE6了。
所以:
if($.brower.msie&&($.browser.version==6.0)&&!$.support.style)
转自:http://www.fuziba.com/2012/02/29/jquery%E5%87%86%E7%A1%AE%E5%88%A4%E6%96%ADie6/
======================================================================
网上流传着这几个版本:
$.browser.msie && ($.browser.version == "6.0")
$.browser.msie && ($.browser.version == "6.0") && !$.support.style
$.browser.msie && ($.browser.version.substring(0, 1) < 7)
运行起来看似都正常,但是都不行。因为在某些操作系统下,即使IE8,navigator.userAgent也会含有MSIE 6.0的字符,例如:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.21022; CIBA; .NET CLR 3.5.30729; .NET CLR 3.0.30618)
以上判断会把上面情况的IE8判断为IE6。
@不羁虫 分析了jQuery.browser.version的原理,解释了为什么会把被上面的agent字符串分析成IE6。
地址:http://hi.baidu.com/bujichong/blog/item/759904fa689f079e58ee9045.html
参考了 @不羁虫 的正则表达式,下面是一个方案:
var userAgent = navigator.userAgent.toLowerCase();
var browserId = userAgent.match(/(firefox|chrome|safari|opera|msie)/)[1];
var browserVersion = (userAgent.match(new RegExp('.+(?:version)[\/: ]([\\d.]+)')) || userAgent.match(new RegExp('(?:'+browserId+')[\/: ]([\\d.]+)')) || [0,'0'])[1];
var isIe6 = (browserId + browserVersion == "msie6.0");
在IE7、IE8、IE9、chrome下测试为false,IE6中测试为true。暂时没什么问题,供大家参考。
转自:http://hi.baidu.com/cnkarl/item/2d871d10b615a8ee9913d6c6
- jquery判断IE 6
- Jquery判断IE浏览器6/7/8
- IE版本判断,jquery方法
- 用jquery 判断IE浏览器
- JQuery和IE条件表达式判断浏览器
- IE上判断上传文件大小Spring + Jquery
- 使用jQuery判断IE浏览器版本
- 判断IE
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 简易协议帧的基于状态机解包方法
- 在金额前添加货币符号
- c#连接sql数据库
- 无限级可刷新Js树型菜单
- FFMpeg包中的Libavformat和libavcodec库的使用——转载+翻译
- jquery判断IE 6
- winrar4.0破解方法
- File的基本操作
- PHP通过ROOT权限执行linux命令
- IOS 收起虚拟键盘的各种方法
- UIPickerView
- Qt基础——获取QGraphicsScene的缩略图即导出到图片
- Python学习(二) linux终端下运行.py文件的方法
- JPA使用指南 javax.persistence的注解配置