jQuery.browser已弃用,但如何使用.support?
在我的网页上,我有以下CSS:jQuery.browser已弃用,但如何使用.support?,jquery,cross-browser,sniffing,Jquery,Cross Browser,Sniffing,在我的网页上,我有以下CSS: tr:hover { background-color: #f0f; } 它在所有浏览器中都能很好地工作,除了好的旧IE。我知道我可以只编写一些jQuery来添加和删除鼠标移过/移出的类,但我不想妨碍(尽管稍微有点)所有其他支持:正确悬停的浏览器-因此我只想将此JS行为应用于本机不支持纯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先生的一长串电子邮件:“你做错了!”