Heim >Web-Frontend >js-Tutorial >5 Möglichkeiten zur Behebung von jQuery $ .browser -Funktion fehlen nicht gefunden
„Das Repo ist nicht mehr aufrechterhalten. Bitte verwenden Sie das JQuery Migrate Plugin, wenn $ .browser erforderlich ist, den Code neu schreiben oder usenavigator.Useragent direkt. ”
Warum wurde $ .browser entfernt?
verfügbare Flags sind:
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>Lösung 2 - Verwenden Sie Modernizr
Verwenden Sie die neue $ .Support, um Funktionen und Fehlererkennung zu verwenden. Noch einmal leistet JQuery alle harten Arbeiten und führt Tests am Browser durch und speichert die Ergebnisse auf dem JQuery. -Support -Objekt (jede Seite laden standardmäßig). Wir können dann einfachen Abfragen dieses Objekts, um zu bestimmen, dass eine Funktion zur Verfügung steht oder nicht. Zum Beispiel, um auf Deckkraft zu suchen, tun Sie dies einfach:
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>
Browser und Versionen erkennen mit den folgenden JavaScript -Code -Snippets. Mackenmodelle haben ein ziemlich umfangreiches JavaScript -Browser-/Geräteerkennungsobjekt, das sich als nützlich erweisen kann.
<span>if (jQuery.support.opacity) </span><span>{ </span> <span>//opacity you may do... </span><span>} </span>
informieren Sie einfach den Benutzer, dass die Version von JQuery, die sie verwenden, die Funktion $ .browser nicht unterstützt. Ich würde diese Lösung wahrscheinlich nicht empfehlen, da sie nichts für die Benutzerfreundlichkeit bewirkt, sondern dazu verwendet werden könnte, bestimmte Plugins zu blockieren. Ich würde vorschlagen, die Entwicklerversion des Migrate -Plugins zu verwenden, das informatives Debugging einschaltet.
<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>
Quelle: https://raw.github.com/house9/jquery-frame-auto-height/master/release/jquery.iframe-auto-height.plugin.1.9.1.js
wie immer, Kommentare, Vorschläge und Verbesserungen begrüßt.
Um das JQuery -Migrate -Plugin zu verwenden, müssen Sie es nach Einbeziehung von JQuery in Ihre HTML -Datei aufnehmen. Sobald Sie das Plugin eingeschlossen haben, werden die JQuery -Browserfunktion und andere veraltete Funktionen automatisch wiederhergestellt. JQuery Browser -Funktion. Eine der beliebtesten Alternativen ist die Erkennung von Feature, die ein zuverlässigerer und zukunftssicherer Ansatz ist. Sie können die Modernizr -Bibliothek zur Erkennung von Funktionen verwenden. Eine andere Alternative besteht darin, die Eigenschaft navigator.useragent zu verwenden, obwohl dies nicht empfohlen wird, da er leicht gefälscht werden kann. Erkennung, weil es ein zuverlässigerer und zukunftssicherer Ansatz ist. Die Browsererkennung basiert auf der Benutzeragentenzeichenfolge, die leicht gefälscht oder falsch dargestellt werden kann. Auf der anderen Seite überprüft die Funktionserkennung, wenn eine bestimmte Funktion verfügbar ist. Dies ist eine genauere Möglichkeit, die Funktionen des Browsers des Benutzers zu bestimmen. Browserfunktion?
Das obige ist der detaillierte Inhalt von5 Möglichkeiten zur Behebung von jQuery $ .browser -Funktion fehlen nicht gefunden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!