“不再维护此存储库不活跃。如果需要$。浏览器,请使用jQuery迁移插件,请直接重写代码或usenavigator.useragent。
为什么要删除$。浏览器?>大多数开发人员开始看到错误出现时,他们在想“到底是什么,为什么$浏览器被删除了?”。好吧,让我解释一些可能的原因。因为$ ..兄弟使用navigator.useragent来确定平台,所以它很容易被用户欺骗或浏览器本身虚假陈述。总是最好避免在可能的情况下完全避免使用特定于浏览器的代码。 $ .support属性可用于检测特定功能的支持,而不是依赖$ .browser。
> webkit(作为jQuery 1.4)
> safari(已弃用)
jQuery<span>.uaMatch = function( ua ) { </span> ua <span>= ua.toLowerCase(); </span> <span>var match = <span>/<span>(chrome)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(webkit)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(opera)(?:.*version|)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(msie) (<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> ua<span>.indexOf("compatible") < 0 && <span>/<span>(mozilla)(?:.*? rv:(<span>[w.]</span>+)|)</span>/</span>.exec( ua ) || </span> <span>[]; </span> <span>return { </span> <span>browser: match[ 1 ] || "", </span> <span>version: match[ 2 ] || "0" </span> <span>}; </span><span>}; </span> <span>// Don't clobber any existing jQuery.browser in case it's different </span><span>if ( !jQuery.browser ) { </span> matched <span>= jQuery.uaMatch( navigator.userAgent ); </span> browser <span>= {}; </span> <span>if ( matched.browser ) { </span> browser<span>[ matched.browser ] = true; </span> browser<span>.version = matched.version; </span> <span>} </span> <span>// Chrome is Webkit, but Webkit is also Safari. </span> <span>if ( browser.chrome ) { </span> browser<span>.webkit = true; </span> <span>} else if ( browser.webkit ) { </span> browser<span>.safari = true; </span> <span>} </span> jQuery<span>.browser = browser; </span><span>} </span> <span>// Warn if the code tries to get jQuery.browser </span><span>migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" ); </span>
>使用新的$ .support利用功能和错误检测。 jQuery再次完成了所有艰苦的工作,并在浏览器上执行测试,并在jQuery.Support对象上存储结果(默认情况下,每个页面加载)。然后,我们可以简单查询此对象以确定是否可以使用功能。例如,要检查不透明度支持,只需做到这一点:
>jQuery<span>.uaMatch = function( ua ) { </span> ua <span>= ua.toLowerCase(); </span> <span>var match = <span>/<span>(chrome)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(webkit)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(opera)(?:.*version|)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(msie) (<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> ua<span>.indexOf("compatible") < 0 && <span>/<span>(mozilla)(?:.*? rv:(<span>[w.]</span>+)|)</span>/</span>.exec( ua ) || </span> <span>[]; </span> <span>return { </span> <span>browser: match[ 1 ] || "", </span> <span>version: match[ 2 ] || "0" </span> <span>}; </span><span>}; </span> <span>// Don't clobber any existing jQuery.browser in case it's different </span><span>if ( !jQuery.browser ) { </span> matched <span>= jQuery.uaMatch( navigator.userAgent ); </span> browser <span>= {}; </span> <span>if ( matched.browser ) { </span> browser<span>[ matched.browser ] = true; </span> browser<span>.version = matched.version; </span> <span>} </span> <span>// Chrome is Webkit, but Webkit is also Safari. </span> <span>if ( browser.chrome ) { </span> browser<span>.webkit = true; </span> <span>} else if ( browser.webkit ) { </span> browser<span>.safari = true; </span> <span>} </span> jQuery<span>.browser = browser; </span><span>} </span> <span>// Warn if the code tries to get jQuery.browser </span><span>migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" ); </span>
>
<span>if (jQuery.support.opacity) </span><span>{ </span> <span>//opacity you may do... </span><span>} </span>
>来源:https://raw.github.com/house9/jquery-iframe-auto-height/master/master/release/jquere.iframe-auto-height.plugin.1.9.1.9.1.js
<span>/* </span><span> Internet Explorer sniffer code to add class to body tag for IE version. </span><span> Can be removed if your using something like Modernizr. </span><span> */ </span> <span>var ie = (function () </span> <span>{ </span> <span>var undef, </span> v <span>= 3, </span> div <span>= document.createElement('div'), </span> all <span>= div.getElementsByTagName('i'); </span> <span>while ( </span> div<span>.innerHTML = '', </span> all<span>[0]); </span> <span>//append class to body for use with browser support </span> <span>if (v > 4) </span> <span>{ </span> <span>$('body').addClass('ie' + v); </span> <span>} </span> <span>}()); </span>
经常询问有关jQuery浏览器函数的问题(常见问题解答)
> jQuery浏览器函数是什么,为什么不弃用?> jQuery浏览器函数是jQuery中的功能,它提供了有关用户浏览器的信息。它用于检测用户使用的浏览器和版本。但是,此功能在JQuery版本1.3中被弃用,并在版本1.9中删除。其贬值的原因是它鼓励浏览器特定的代码,这是违反了渐进式增强和优雅退化的原则。取而代之的是,鼓励开发人员使用功能检测,这是一种更可靠,更耐心的方法。功能检测是Web开发中用于确定浏览器是否支持某个功能的技术。您没有检查浏览器和版本,而是检查是否有特定功能。这是一种更可靠,更适合未来的方法。您可以使用ModernIzr库进行功能检测。
> jQuery Migrate插件是帮助您的工具更新您的jQuery代码以使用较新版本的jQuery。它恢复了贬低的功能和行为,因此较旧的代码仍然可以与较新版本的jQuery一起使用。如果您不能再将代码更新为不再依赖jQuery浏览器函数,则可以将jQuery迁移插件用作临时解决方案。
要使用jQuery Migrate插件,您需要将其包含在HTML文件中,包括jQuery。包含插件后,它将自动恢复jQuery浏览器函数和其他不弃用的功能。
>>为什么比浏览器检测更优先?
特征检测比浏览器更喜欢检测是因为它是一种更可靠,更适合未来的方法。浏览器检测依赖于用户代理字符串,可以轻松地欺骗或虚假陈述。另一方面,功能检测检查是否有特定功能,这是确定用户浏览器功能的更准确的方法。如何更新我的代码以使用功能检测而不是jQuery浏览器函数?要更新您的代码以使用功能检测,您需要使用特定功能的检查来替换jQuery浏览器函数的任何实例。您可以使用ModernIzr库来帮助解决此问题。例如,您可以检查浏览器是否支持Internet Explorer独有的特定功能。
,如果您在jQuery中遇到其他折衷的功能,最好的解决方案是将代码更新到不再依赖这些功能的代码。您可以将jQuery迁移插件用作临时解决方案,但是建议更新代码以进行长期兼容性。始终检查jQuery文档以获取有关弃用功能及其替代方案的最新信息。
>以上是修复jQuery $的5种方法未找到浏览器功能的详细内容。更多信息请关注PHP中文网其他相关文章!