当前位置:  开发笔记 > 编程语言 > 正文

使用jQuery.support检测IE6

如何解决《使用jQuery.support检测IE6》经验,为你挑选了3个好方法。

任何人对如何使用jquery.support测试IE6(而不是IE7)的特定内容有任何想法?

我的问题是IE6支持:仅为锚元素悬停psuedo-class,而IE7确实支持所有元素(如FF,Chrome等).所以我想做一些特殊的事情,以防浏览器不支持:悬停所有元素...因此我需要一种方法来测试这个功能.(不想使用jQuery.browser).有任何想法吗?



1> FriendOfFutu..:

虽然检查功能支持而不是用户代理是一个好习惯,但是没有简单的方法来检查使用JavaScript支持css属性之类的东西.我建议你按照上面的海报建议使用条件注释或使用jQuery.browser.一个简单的实现(未经过性能或错误验证)可能如下所示:

if ($.browser.msie && $.browser.version.substr(0,1)<7) {
  // search for selectors you want to add hover behavior to
  $('.jshover').hover(
    function() {
      $(this).addClass('over');
    },
    function() {
      $(this).removeClass('over');
    }
}

在您的标记中,将.jshover类添加到您希望悬停css效果的任何元素.在你的css中,添加如下规则:

ul li:hover, ul li.over { rules here }


我不禁要问:`if($ .browser.msie && $ .browser.version.substr(0,1)<7)`如果使用此代码(我认为这不是一个好方法)正在做).当版本10到达架子时会发生什么.substr将返回1,显然小于7.相反,您应该使用parseInt作为alex建议.
对于未来的用户,jquery 1.9已经删除了$ .browser,这个答案对于那种情况不起作用.
你真的不应该使用$ .browser - 它已被弃用了.
我必须同意@jaimedp; 弃用$ .browser而不提供足够的替代方案感觉就像倒退了一步.如果您无法检测css功能或功能检测错误,则_have_可以进行某种浏览器检测.
scunliffe的答案更好,因为它适用于所有IE6用户,而不是简单的IE6用户启用了Javascript.

2> scunliffe..:

您可以使用Microsoft Internet Explorer特定的条件注释将特定代码应用于IE6.




3> 小智..:

Thickbox使用

if(typeof document.body.style.maxHeight === "undefined") {
    alert('ie6');
} else {
    alert('other');
}

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有