2012-01-19 48 views
1

所以我运行jQuery 1.3.2(是的,它是旧的,现在我不能升级)。一些没有IE浏览器显示为真的IE6浏览器检测

问题是我想放弃我们内部网站的IE6支持并升级浏览器。我有这个检查

if($.browser.msie && $.browser.version=="6.0") { 
    // do something... 
} 

但在测试过程中(部分)Firefox用户所看到的do something条件和should'nt是。以下是我认为可能导致问题的一些用户代理。

  • 的UserAgent:Mozilla的/ 5.0(Windows NT的6.1; WOW64)为AppleWebKit/535.7(KHTML,例如Gecko)铬/ 16.0.912.75 Safari浏览器/ 535.7
  • 的UserAgent:Mozilla的/ 5.0(视窗; U; Windows NT的5.1; en-US; rv:1.9.2.23)Gecko/20110920 Firefox/3.6.23
  • UserAgent:Mozilla/5.0(Windows NT 5.1)AppleWebKit/535.7(KHTML,如Gecko)Chrome/16.0.912.75 Safari/535.7 UserAgent:Mozilla/5.0(Windows; U; Windows NT; Windows NT; Windows NT 6.1; en-US; rv:1.9.2.25)Gecko/20111212 Firefox/3.6.25
  • UserAgent:Mozilla/5.1; EN-US; rv:1.9.2.12)Gecko/20101026 Firefox/3.6.12

有更多的IE6验证我需要吗?

注意:最终用户没有安装插件。我想类似IE的选项卡可能会造成问题,但认为并非如此

UPDATE:

所有响应,下面带我到这一点,仍在测试,但它看起来不错。任何虽然如何改善它?

var ie6 = $.browser.msie && parseInt($.browser.version) === 6 && typeof window['XMLHttpRequest'] !== "object"; 
if(typeof document.body.style.maxHeight === "undefined" && ie6) { 
    alert('Your browser is IE6'); 
} 

相关问题:

+1

修补你的jQuery副本使用较新的(大概是固定的)版本'.browser'对象? –

+0

http://api.jquery.com/jQuery.browser/该项目停留在jQuery的1.3.2,直到规范设计完成,但我们都知道如何继续下去......一个人如何“修补你的jQuery副本“? –

+1

将生成'browser'对象的'jquery.js'内的源代码替换为新版本的源代码。 –

回答

1

感谢所有来帮我找到了我一直在寻找,也许这可能帮助别人

var ie6 = $.browser.msie && parseInt($.browser.version) === 6 && typeof window['XMLHttpRequest'] !== "object"; 
if(typeof document.body.style.maxHeight === "undefined" && ie6) { 
    alert('Your browser is IE6'); 
} 
5

不要使用浏览器检测。特征检测更好。如果你想显示一条消息或只给IE 6用户,我建议使用conditional comments

<!--[if IE 6]> 
    <script type="text/javascript"> 
     // do something... 
    </script> 
<![endif]--> 
+0

对不起,这没有按预期工作,看到更新的问题 –

+0

@PhillPafford什么没有工作呢?鉴于上面的代码(以及在quirksmode博客中链接的代码),它应该可以工作。有条件的评论是专门为此设计的,所以没有任何理由不应该这样做。 – Ktash

+0

一些上了年纪Firefox浏览器的认为这是一个语法错误,在这里尝试这种方法时:http://stackoverflow.com/a/4226413/93966 –

0

如果你想稿件的网上找IE6及以下,你不能使用条件注释:

如果( '\ V' === 'V' & & window.XMLHttpRequest!) { //做些什么... }

+0

对不起如预期并没有工作,请参见更新的问题 –

1

jQuery Documentation

的$ .browser属性弃用的jQuery 1.3,其功能可能会在将来的jQuery的版本被移动到一个团队支持的插件....

它始终是最好避免特定浏览器的代码完全在可能的情况。 $ .support属性可用于检测对特定功能的支持,而不是依赖$ .browser。

Altenatively你可以使用:使用navigator object

  • IE条件语句

    1. 写custome浏览器探测器,像this
  • +0

    对不起如预期并没有工作,见更新问题 –

    0

    什么是你正在试图做的事需要知道浏览器是否为IE6?让我们消除这一点。

    +0

    “放弃对我们的内部网站IE6的支持”需要针对IE6浏览器 –