搜索
首页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引擎:实施详细信息了解JavaScript引擎:实施详细信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python vs. JavaScript:学习曲线和易用性Python vs. JavaScript:学习曲线和易用性Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python vs. JavaScript:社区,图书馆和资源Python vs. JavaScript:社区,图书馆和资源Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

从C/C到JavaScript:所有工作方式从C/C到JavaScript:所有工作方式Apr 14, 2025 am 12:05 AM

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

JavaScript引擎:比较实施JavaScript引擎:比较实施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

超越浏览器:现实世界中的JavaScript超越浏览器:现实世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。

使用Next.js(后端集成)构建多租户SaaS应用程序使用Next.js(后端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

如何使用Next.js(前端集成)构建多租户SaaS应用程序如何使用Next.js(前端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:22 AM

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

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