使用jQuery检测IE

3zz*_*zzy 20 jquery internet-explorer browser-detection

$(window).load(function () {
   if($.browser.msie && $.browser.version=="6.0") {
     // do stuff
   }
});
Run Code Online (Sandbox Code Playgroud)

刚刚意识到$ .browser已在1.3中折旧.什么是检测IE的新方法,特别是IE6.

kia*_*uno 19

jQuery的文档jQuery.browser显示以下警告.(重点是我的.)

由于$.browser用于navigator.userAgent确定平台,因此很容易受到用户的欺骗或浏览器本身的误传.最好尽可能完全避免特定于浏览器的代码.而不是依赖$.browser它更好地使用像Modernizr这样的库.

文档页面还说:

此属性已在jQuery 1.9中删除,只能通过jQuery.migrate插件获得.请尝试使用功能检测.

甚至jQuery.support,旧文档中提出的建议也有以下警告.(重点是我的.)

表示存在不同浏览器功能或错误的属性集合.用于jQuery的内部使用 ; 当内部不再需要特定属性以提高页面启动性能时,可以删除这些属性.对于您自己的项目的功能检测需求,我们强烈建议使用诸如Modernizr之类的外部库,而不是依赖于属性jQuery.support.

以前的文档jQuery.support报告了以下属性和值.

  • $.support.boxmodelfalse在IE 6和7.
  • $.support.cssFloat适用false于IE 6,7和8; 它true在IE 9中.
  • $.support.leadingWhitespace适用false于IE 6,7和8.
  • $.support.objectAll目前false适用于IE 6,7和8.

  • 对于发现此评论的所有其他人,对于IE 6,7和8,$ .support.cssFloat为false.在IE 9中,这是真的. (2认同)

jus*_*ody 6

来自文档的热门:我们建议不要使用此属性,请尝试使用功能检测(请参阅jQuery.support).