ホームページ >ウェブフロントエンド >jsチュートリアル >jquery $ .browser関数が見つからない5つの方法
では、なぜ$ .browserが削除されたのですか?
ほとんどの開発者は、エラーが表示されているのを見始めたときに最初に考えて、「なぜ$ .browserが削除されたのか」と考えていました。さて、これのいくつかの考えられる理由について少し説明させてください。 $ .BrowserはNavigator.useragentを使用してプラットフォームを決定するため、ユーザーによるスプーフィングやブラウザ自体による不実表示に対して脆弱です。可能な場合は、ブラウザ固有のコードを完全に避けることが常に最善です。 $ .Supportプロパティは、$ .browserに依存するのではなく、特定の機能のサポートの検出に利用できます。利用可能なフラグは
webkit(jquery 1.4の時)
safari(非推奨)
基本的なブラウザ検出の代わりに、Modernizrを使用して、機能検出、HTML5/CSS3などを利用します。 Modernizrは素晴らしいと思います!
new $ .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>
次のJavaScriptコードスニペットを使用して、ブラウザとバージョンを検出します。 QuirkSmodeには、かなり広範なJavaScriptブラウザー/デバイス検出オブジェクトがあり、これが有用であると証明されます。
<span>if (jQuery.support.opacity) </span><span>{ </span> <span>//opacity you may do... </span><span>} </span>ソリューション5 - 予防/情報
出典:https://raw.github.com/house9/jquery-iframe-auto-height/master/master/release/jquery.iframe-auto-height.plugin.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ブラウザー関数に関するよくある質問(FAQ)jQueryブラウザ関数とは何ですか?なぜそれが非推奨されるのですか?jQueryブラウザ関数は、ユーザーのブラウザに関する情報を提供するjqueryの機能でした。ユーザーが使用するブラウザとバージョンを検出するために使用されました。ただし、この関数はjQueryバージョン1.3で非推奨され、バージョン1.9で削除されました。その非推奨の理由は、進歩的な強化と優雅な劣化の原則に反するブラウザ固有のコードを奨励したからです。代わりに、開発者は機能検出を使用することをお勧めします。これは、より信頼性が高く将来のアプローチです。 jQueryブラウザ関数は、jQueryの新しいバージョンではサポートされなくなることを意味します。 1.9以降のjQueryのバージョンを使用している場合、jQueryブラウザー関数に依存するコードは機能しません。これにより、この関数に依存している場合、Webサイトまたはアプリケーションが壊れる可能性があります。最良の解決策は、この機能に依存しなくなるようにコードを更新することです。代わりに、機能検出を使用して、ユーザーのブラウザが持っている機能を決定します。コードを更新できない場合は、jQueryブラウザ機能を復元するjQuery移行プラグインを使用できます。
機能検出は、ブラウザが特定の機能をサポートするかどうかを判断するためにWeb開発で使用される手法です。ブラウザとバージョンをチェックする代わりに、特定の機能が利用可能かどうかを確認します。これは、より信頼性が高く将来のアプローチです。 Modernizrライブラリを機能検出に使用できます。 jQueryコードを更新して、jqueryの新しいバージョンで動作します。廃止された機能と動作を復元するため、古いコードはjQueryの新しいバージョンで動作します。 jQueryブラウザ関数に依存しなくなってコードを更新できない場合は、jQuery移行プラグインを一時的なソリューションとして使用できます。
ブラウザ検出よりも機能検出が優先されるのはなぜですか?より信頼性が高く将来のプルーフアプローチであるため、検出。ブラウザの検出は、ユーザーエージェントの文字列に依存しています。これは、簡単にスプーフィングまたは誤って伝えることができます。一方、機能検出は、特定の機能が利用可能であるかどうかをチェックします。これは、ユーザーのブラウザの機能を決定するためのより正確な方法です。ブラウザ関数?
jQueryで他の非推奨機能に遭遇した場合、最良の解決策は、これらの機能に依存しなくなるようにコードを更新することです。 jQuery移行プラグインを一時的なソリューションとして使用できますが、長期的な互換性のためにコードを更新することをお勧めします。非推奨機能とその代替案に関する最新情報については、必ずjQueryドキュメントを確認してください。
以上がjquery $ .browser関数が見つからない5つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。