现在jQuery 1.3已经弃用了(我假设在将来的版本中删除了)$ .browser.msie和类似的应该如何进行浏览器检测?
我已经使用了很多东西来确定我们在几乎所有浏览器中使用CSS修复的浏览器,例如:
$.browser.opera $.browser.safari $.browser.mozilla
......好吧我认为这就是全部:)
在我使用它的地方,我不确定导致问题的是什么浏览器问题,因为很多时候我只是想在浏览器中修复1 px差异.
编辑:使用新的jQuery功能,无法确定您是在IE6还是IE7.现在应该如何确定?
是的,浏览器检测已被弃用,但不久之后可能不会从jQuery中删除不推荐使用的属性.当它们被删除时,如果你仍然需要进行浏览器检测,你可以使用一个简单的小插件轻松添加相同的功能.
所以,我的答案是什么都不做,现在:)
编辑:我甚至会为你提供一个将来使用的插件(未测试,从jquery源复制粘贴):
(function($) { var userAgent = navigator.userAgent.toLowerCase(); $.browser = { version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1], safari: /webkit/.test( userAgent ), opera: /opera/.test( userAgent ), msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ), mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent ) }; })(jQuery);
我面对类似的东西,没有$ .support.png(p.ej.),所以我需要使用$ .browser.version,也许我们可以继续要求更多$ .support.XXXX属性,尽可能多如所须.
.browser已被弃用,以支持.support.这里有更多信息:jquery.support 这实际上意味着不是使用浏览器嗅探,而是使用jquery进行功能支持检测,并允许对浏览器的功能进行更精细的控制.
从描述:
在jQuery 1.3中添加了一组属性,表示存在不同的浏览器功能或错误.
jQuery附带了许多属性,你应该随意添加自己的属性.其中许多属性都相当低级,因此它们在日常开发中很有用,但主要用于插件和核心开发人员.
使用特征检测确定所有支持属性的值(并且不使用任何形式的浏览器嗅探)
功能支持听起来不错,但它只能在支持所有可能的"错误"时按预期工作.就像第一个评论者一样,没有$ support.png,或者是$ support.stepping,或者是$ support.peekaboo,或者哦,列表继续.这样做的问题是,使一个浏览器兼容的某些代码将不可避免地最终由不需要它的浏览器执行.
jQuery中不推荐使用浏览器检测.jQuery.browser的 Doc页面,其中说明:
我们建议不要使用此属性,请尝试使用功能检测(请参阅jQuery.support).
弃置意味着"将来被拆除." 关于嗅探功能而不是用户代理的建议只是很好的一般建议,而不是特定于jQuery.他们所说的只是让他们更容易做正确的事情.
然而,总是需要用户代理嗅探.除非jQuery.support
每天由一大批开发人员更新,否则它无法跟上每个浏览器的每个小点版本中的每个错误和每个功能.
我认为对此的困惑源于这样一个事实:在内部,jQuery不再对浏览器进行嗅探.但实用程序API jQuery.browser将继续存在.