jQuery.browser已弃用,但如何使用.support?

jQuery.browser已弃用,但如何使用.support?,jquery,cross-browser,sniffing,Jquery,Cross Browser,Sniffing,在我的网页上,我有以下CSS: tr:hover { background-color: #f0f; } 它在所有浏览器中都能很好地工作,除了好的旧IE。我知道我可以只编写一些jQuery来添加和删除鼠标移过/移出的类,但我不想妨碍(尽管稍微有点)所有其他支持:正确悬停的浏览器-因此我只想将此JS行为应用于本机不支持纯CSS解决方案的浏览器 当然,我们都知道,$。浏览器不受欢迎,我们都知道浏览器嗅探是一件坏事,因此其他每个问题都有一大堆类似“你不应该检查浏览器,检查功能”的答案,在这些

在我的网页上,我有以下CSS:

tr:hover {
    background-color: #f0f;
}
它在所有浏览器中都能很好地工作,除了好的旧IE。我知道我可以只编写一些jQuery来添加和删除鼠标移过/移出的类,但我不想妨碍(尽管稍微有点)所有其他支持
:正确悬停
的浏览器-因此我只想将此JS行为应用于本机不支持纯CSS解决方案的浏览器

当然,我们都知道,
$。浏览器
不受欢迎,我们都知道浏览器嗅探是一件坏事,因此其他每个问题都有一大堆类似“你不应该检查浏览器,检查功能”的答案,在这些人居住的神奇仙境中,这一切都很好,但我们其他人需要让我们的网站在IE6和其他浏览器上正常运行

$。对IE6和IE7的支持如下所示:

leadingWhitespace: false
tbody:             false
objectAll:         false
htmlSerialize:     false
style:             false
hrefNormalized:    false
opacity:           false
cssFloat:          false
scriptEval:        false
noCloneEvent:      false
boxModel:          true
我究竟应该如何使用这些属性来确定
tr:hover
是否有效


是的,我知道在这个例子中,它是相当无害的,我可能不给IE用户这个特性,或者通过在所有浏览器上模拟它,但这不是重点。如果
$.browser
,而
$.support
无法取代它,您应该如何停止使用
$.browser

简单的回答-在某些情况下您不能,这是我认为您应该使用任何必要的手段来完成工作的情况之一。许多流行的插件(日期选择器和模式脚本)需要执行此操作(例如iframe shim),否则脚本无法在特定(尽管很旧)浏览器中正常工作

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

<!--[if IE 6]><script src="/js/ie6.js"></script><![endif]-->


您还可以提供一个通用的IE js文件,然后根据版本在其中进行分支。

+1,因为这可能比用户代理嗅探更可靠,但它不能解决您希望代码向前兼容的问题:如果IE9推出并支持功能X,使用仅限IE的条件注释不起作用。(我知道你可以做
[如果CCs的优点是它们不能被欺骗,或者至少不能不入侵你的注册表。我希望jQuery没有拒绝使用$.browser。一定是给Resig先生的一长串电子邮件:“你做错了!”