使用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.boxmodel
为false
,以及7。 - 对于IE 6,7和8,
$.support.cssFloat
为false
; 在IE 9中也是true
。 - 对于IE 6,7和8,
$.support.leadingWhitespace
为false
。 - 对于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 ); }