<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="Jquery判断浏览器 jQuery 对ie6的版本检测错误及修正方法" id="card1">
<p> 游客</p><p>
标题:Jquery判断浏览器 jQuery 对ie6的版本检测错误及修正方法<br/>
正文:<br/>
jQuery 对ie6的版本检测错误及修正方法<br/><br/>今天发现网页中的一个脚本错误，经检查发现是使用jQuery.browser.version判断浏览器版本时将IE8.0返回成IE6.0了， 网上搜索有同样的问题，但大部份人反映的结果都是正常的，再一测试原来问题了，因为我的测试环境是WIN2008（Windows NT 6.0），WIN2003或WINXP返回的结果都是正常的（Windows NT 5.2），查jQuery的源码时发现他是使用正则判断的version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,’0’])[1] ，应该是他把navigator.userAgent中的Windows NT 6.0 解析成IE6.0的版本号了。<br/>    问题找到了，那么就要找解决方法了。最直接的解决方法是修改jQuery的版本解析正则。由于考虑到如果升级jQuery时每次都要修改很麻烦，再一个 jQuery最新版1.3.2的文档中已经声明jQuery.browser及jQuery.browser.version建议弃用，可以使用jQuery.support来代替，这也就是说后续版本中可能会放弃jQuery.browser了。我的页面中使用jQuery.browser.version的目的是检测IE6，那么另一解决方案就是使用jQuery.support来代替了，查jQuery.support的属性说明中有boxModel可以检测出IE6，boxModel的具体说明如下：boxModel: 如果这个页面和浏览器是以W3C CSS盒式模型来渲染的，则等于true。通常在IE 6和IE 7的怪癖模式中这个值是false。在document准备就绪前，这个值是null。但经我测试IE6/IE7/IE8中返回的都是true，这个就是文档中的说明错误了（测试环境：WIN2003+IE6、WIN2003+IE7、 WIN2008+IE8，全部为不同的机器）。那现在只好测试其它的属性了，但我把jQuery.support中其它的属性全部测试后都发现没有一个能 直接检测出IE6的。Google了一下都是说用jQuery.browse<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=327&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=327&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=327&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=327&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=327&amp;Page=4">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=327">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=327">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>