搜索
首页web前端js教程修复jQuery $的5种方法未找到浏览器功能

5 Ways to Fix jQuery $.browser function missing not found

修复jQuery $的5种方法未找到浏览器功能

钥匙要点

  • jQuery $。浏览器功能由于其易受欺骗和虚假陈述而被贬低。鼓励开发人员避免特定于浏览器的代码,而是使用功能检测来获得更可靠的结果。
  • >缺少jQuery $的五个可能的解决方案。Browser函数包括使用jQuery Migrate插件迁移jQuery,使用Modernizr进行功能检测,使用新的$ .support用于功能和错误检测,使用Javascript/Manual检测或告知用户关于不支持的函数。
  • > jQuery迁移插件可以用作恢复较新版本的jQuery的折旧功能和行为的临时解决方案。但是,建议将代码更新为不再依赖于弃用的功能以进行长期兼容性。
  • >
  • 好的,现在正式宣布$ .BROWSER功能已被贬低。我们该怎么办?不要惊慌,我在下面有5种可能的解决方案供您执行作为您的酌处权。回购中的此github消息确实说明了一切:
>

“不再维护此存储库不活跃。如果需要$。浏览器,请使用jQuery迁移插件,请直接重写代码或usenavigator.useragent。

为什么要删除$。浏览器?
>大多数开发人员开始看到错误出现时,他们在想“到底是什么,为什么$浏览器被删除了?”。好吧,让我解释一些可能的原因。因为$ ..兄弟使用navigator.useragent来确定平台,所以它很容易被用户欺骗或浏览器本身虚假陈述。总是最好避免在可能的情况下完全避免使用特定于浏览器的代码。 $ .support属性可用于检测特定功能的支持,而不是依赖$ .browser。

可用标志为:

> webkit(作为jQuery 1.4)

> safari(已弃用)
  • > Opera
  • > msie(请注意,IE8在兼容性视图中声称为7)
  • >
  • > mozilla
  • >解决方案1 ​​ - 迁移jQuery
  • >使用jQuery迁移插件将jQuery的早期版本升级到jQuery 1.9.x。这是所有荣耀中迁移$ .BROWSER代码:
>

>解决方案2 - 使用Modernizr

使用ModernIzr利用特征检测,HTML5/CSS3等…而不是基本的浏览器检测。我认为Modernizr很棒!
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") /<span>(mozilla)(?:.*? rv:(<span>[w.]</span>+)|)</span>/</span>.exec( ua ) ||
                <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>

>解决方案3 - 使用jquery.support

>使用新的$ .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") /<span>(mozilla)(?:.*? rv:(<span>[w.]</span>+)|)</span>/</span>.exec( ua ) ||
                <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>

>解决方案4 - 使用JavaScript/手动检测

使用以下JavaScript代码段来检测浏览器和版本。 QuirksMode具有相当广泛的JavaScript浏览器/设备检测对象,可能被证明有用。

>

<span>if (jQuery.support.opacity)
</span><span>{
</span>   <span>//opacity you may do...
</span><span>}
</span>
解决方案5 - 预防/信息

只需通知用户,他们使用的jQuery版本不支持$ .BROWSER函数。可能不会推荐此解决方案,因为它无助于可用性,但可以用来阻止某些插件。我建议使用迁移插件的开发人员版本,该插件打开内容丰富的调试。

>来源: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中删除。其贬值的原因是它鼓励浏览器特定的代码,这是违反了渐进式增强和优雅退化的原则。取而代之的是,鼓励开发人员使用功能检测,这是一种更可靠,更耐心的方法。

> jQuery浏览器函数的弃用有什么影响? jQuery浏览器函数意味着它不再在较新版本的jQuery中支持。如果您使用的是1.9或更高版本的jQuery版本,则任何依赖jQuery浏览器函数的代码都无法正常工作。如果您依赖此功能,这可能会破坏您的网站或应用程序。

>

>如果遇到与jQuery浏览器函数相关的错误,我该如何修复jQuery浏览器函数错误?最好的解决方案是将代码更新到不再依赖此功能。而是使用功能检测来确定用户浏览器具有哪些功能。如果您无法更新代码,则可以使用jQuery Migrate插件,该插件还原jQuery浏览器函数。

什么是功能检测,我该如何使用它代替jQuery浏览器函数?

功能检测是Web开发中用于确定浏览器是否支持某个功能的技术。您没有检查浏览器和版本,而是检查是否有特定功能。这是一种更可靠,更适合未来的方法。您可以使用ModernIzr库进行功能检测。

>什么是jQuery Migrate插件,它如何帮助解决jQuery浏览器函数错误?

>

> jQuery Migrate插件是帮助您的工具更新您的jQuery代码以使用较新版本的jQuery。它恢复了贬低的功能和行为,因此较旧的代码仍然可以与较新版本的jQuery一起使用。如果您不能再将代码更新为不再依赖jQuery浏览器函数,则可以将jQuery迁移插件用作临时解决方案。

如何使用jQuery迁移插件来修复jQuery浏览器函数错误?

>

要使用jQuery Migrate插件,您需要将其包含在HTML文件中,包括jQuery。包含插件后,它将自动恢复jQuery浏览器函数和其他不弃用的功能。

>

是否有jQuery浏览器函数的替代方法? jQuery浏览器功能。最受欢迎的替代方案之一是功能检测,这是一种更可靠,更适合未来的方法。您可以使用ModernIzr库进行功能检测。另一种选择是使用navigator.useragent属性,尽管不建议这样做,因为它可以很容易被欺骗。

>为什么比浏览器检测更优先?

特征检测比浏览器更喜欢检测是因为它是一种更可靠,更适合未来的方法。浏览器检测依赖于用户代理字符串,可以轻松地欺骗或虚假陈述。另一方面,功能检测检查是否有特定功能,这是确定用户浏览器功能的更准确的方法。

如何更新我的代码以使用功能检测而不是jQuery浏览器函数?要更新您的代码以使用功能检测,您需要使用特定功能的检查来替换jQuery浏览器函数的任何实例。您可以使用ModernIzr库来帮助解决此问题。例如,您可以检查浏览器是否支持Internet Explorer独有的特定功能。

>如果我在jQuery中遇到其他不弃用的功能,该怎么办?

,如果您在jQuery中遇到其他折衷的功能,最好的解决方案是将代码更新到不再依赖这些功能的代码。您可以将jQuery迁移插件用作临时解决方案,但是建议更新代码以进行长期兼容性。始终检查jQuery文档以获取有关弃用功能及其替代方案的最新信息。

>

以上是修复jQuery $的5种方法未找到浏览器功能的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript数据类型:浏览器和nodejs之间是否有区别?JavaScript数据类型:浏览器和nodejs之间是否有区别?May 14, 2025 am 12:15 AM

JavaScript核心数据类型在浏览器和Node.js中一致,但处理方式和额外类型有所不同。1)全局对象在浏览器中为window,在Node.js中为global。2)Node.js独有Buffer对象,用于处理二进制数据。3)性能和时间处理在两者间也有差异,需根据环境调整代码。

JavaScript评论:使用//和 / * * / * / * /JavaScript评论:使用//和 / * * / * / * /May 13, 2025 pm 03:49 PM

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python vs. JavaScript:开发人员的比较分析Python vs. JavaScript:开发人员的比较分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

Python vs. JavaScript:选择合适的工具Python vs. JavaScript:选择合适的工具May 08, 2025 am 12:10 AM

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript:了解每个的优势Python和JavaScript:了解每个的优势May 06, 2025 am 12:15 AM

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用