不推荐使用jQuery.browser,但是如何使用.support?

nic*_*ckf 8 jquery cross-browser sniffing

在我的网页上,我有这个CSS:

tr:hover {
    background-color: #f0f;
}
Run Code Online (Sandbox Code Playgroud)

除了好的旧IE之外,它在所有浏览器中都能很好地工作.我知道我可以写一些jQuery来添加和删除鼠标上/下的一个类,但我不想让所有其他支持:hover正确的浏览器出现问题- 所以我只想应用这个浏览器的JS行为本身不支持纯CSS解决方案.

当然,我们都知道这$.browser已被弃用了,而且我们都知道浏览器嗅探是一件坏事,SO上的所有其他问题都有大量的答案,就像"你不应该检查浏览器,检查为特征 ",而这一切都很好,当这些人生活的神奇仙境,但我们其他人需要得到我们的网站工作,看着对面IE6和其他浏览器确定.

$.support IE6和7看起来像这样:

leadingWhitespace: false
tbody:             false
objectAll:         false
htmlSerialize:     false
style:             false
hrefNormalized:    false
opacity:           false
cssFloat:          false
scriptEval:        false
noCloneEvent:      false
boxModel:          true
Run Code Online (Sandbox Code Playgroud)

我到底该如何使用这些属性来确定是否tr:hover有效?

是的我知道在这个例子中,它是相当无害的,我可能可以通过不向IE用户提供该功能,或者通过在所有浏览器中模拟它来逃避,但这不是重点.$.browser当你$.support没有接近替换它时,你应该如何停止使用?

med*_*iev 5

简单的答案 - 在某些情况下你不能,这是我认为你应该使用任何必要的手段来完成工作的情况之一.许多流行的插件(datepickers和模态脚本)需要做到这一点(如IFRAME垫片)或脚本将不针对特定的(虽然是旧的)浏览器正常工作.

然而,不是像$ .browser那样嗅探userAgent,我会反对检测IE6或使用CC.

<!--[if IE 6]><script src="/js/ie6.js"></script><![endif]-->
Run Code Online (Sandbox Code Playgroud)

您还可以提供一般的IE js文件,然后根据版本在其内部分支.