使用jQuery检测IE

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

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

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

因为$.browser使用navigator.userAgent来确定平台, 所以很容易被用户欺骗或浏览器本身误传最好尽可能完全避免特定于浏览器的代码 。 而不是依赖$.browser ,最好使用像Modernizr这样的库。

文档页面还说:

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

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

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

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

  • IE 6中的$.support.boxmodelfalse ,以及7。
  • 对于IE 6,7和8, $.support.cssFloatfalse ; 在IE 9中也是true
  • 对于IE 6,7和8, $.support.leadingWhitespacefalse
  • 对于IE 6,7和8, $.support.objectAll当前为false

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

显示浏览器信息

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

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

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