使用jQuery检测IE

时间:2009-12-22 04:26:14

标签: jquery internet-explorer browser-detection

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

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

3 个答案:

答案 0 :(得分:19)

jQuery documentation for jQuery.browser显示以下警告。 (重点是我的。)

  

由于$.browser使用navigator.userAgent来确定平台,很容易受到用户欺骗或浏览器虚假陈述本身的影响。 最好尽可能完全避免特定于浏览器的代码。不要依赖$.browser,最好使用像Modernizr这样的库。

文档页面还说:

  

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

从旧文档中建议的偶jQuery.support有以下警告。 (重点是我的。)

  

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

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

  • $.support.boxmodel在IE 6中为false,并且为7。
  • 对于IE 6,7和8,
  • $.support.cssFloatfalse;在IE 9中它是true
  • 对于IE 6,7和8,
  • $.support.leadingWhitespacefalse
  • 对于IE 6,7和8,
  • $.support.objectAll目前为false

答案 1 :(得分:6)

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

答案 2 :(得分:1)

显示浏览器信息

jQuery.each( jQuery.browser, function( i, val ) {
$( "<div>" + i + " : <span>" + val + "</span>" )
.appendTo( document.body );
});

提醒正在使用的IE渲染引擎的版本。除非包含jQuery Migrate插件,否则无法在jQuery 1.9或更高版本中运行。

if ( $.browser.msie ) {
alert( $.browser.version );
}