ホームページ > ウェブフロントエンド > jsチュートリアル > jquery $ .browser関数が見つからない5つの方法

jquery $ .browser関数が見つからない5つの方法

Lisa Kudrow
リリース: 2025-02-24 09:10:12
オリジナル
413 人が閲覧しました

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

jquery $ .browser関数が見つからない5つの方法

キーテイクアウト

  • jquery $ .browser関数は、スプーフィングと不実表示に対する脆弱性のために廃止されました。開発者は、ブラウザ固有のコードを避け、代わりにより信頼できる結果を得るために機能検出を使用することをお勧めします。 欠落しているjQuery $ .browser関数に対する5つの可能なソリューションには、jQuery移行プラグインでJQueryの移行が含まれ、Modernizrを使用して機能検出に使用します。サポートされていない関数に関するユーザー。
  • jQuery移行プラグインは、jQueryの新しいバージョンで非推奨機能と動作を復元するための一時的なソリューションとして使用できます。ただし、長期的な互換性には、控除された機能に依存しなくなるようにコードを更新することが推奨されます。
  • わかりましたので、$ .browser関数が廃止されたことが公式に宣言されました。私たちは何をしますか?あなたの裁量として実装するために、以下に5つの可能な解決策があります。リポジトリからのこのgithubメッセージはそれをすべて本当に言っています:
「このリポジトリはアクティブではなくなりました。 $ .browserが必要な場合はjquery移行プラグインを使用して、コードを書き換えるか、usenavigator.useragentを直接書き直してください。

では、なぜ$ .browserが削除されたのですか?

ほとんどの開発者は、エラーが表示されているのを見始めたときに最初に考えて、「なぜ$ .browserが削除されたのか」と考えていました。さて、これのいくつかの考えられる理由について少し説明させてください。 $ .BrowserはNavigator.useragentを使用してプラットフォームを決定するため、ユーザーによるスプーフィングやブラウザ自体による不実表示に対して脆弱です。可能な場合は、ブラウザ固有のコードを完全に避けることが常に最善です。 $ .Supportプロパティは、$ .browserに依存するのではなく、特定の機能のサポートの検出に利用できます。
利用可能なフラグは

です

webkit(jquery 1.4の時)

safari(非推奨)

    オペラ
  • msie(IE8は互換性ビューで7であると主張することに注意してください)
  • mozilla
  • ソリューション1 - jquery
  • を移行します
  • jQuery移行プラグインを使用して、jQueryの以前のバージョンをjQuery 1.9.xにアップグレードします。これは、そのすべての栄光における移行$ .browserコードです:

ソリューション2 - Modernizrを使用します

基本的なブラウザ検出の代わりに、Modernizrを使用して、機能検出、HTML5/CSS3などを利用します。 Modernizrは素晴らしいと思います!

ソリューション3 - jquery.support

を使用します

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>
ログイン後にコピー

ソリューション4 - JavaScript/Manual Detectionを使用

次のJavaScriptコードスニペットを使用して、ブラウザとバージョンを検出します。 QuirkSmodeには、かなり広範なJavaScriptブラウザー/デバイス検出オブジェクトがあり、これが有用であると証明されます。

<span>if (jQuery.support.opacity)
</span><span>{
</span>   <span>//opacity you may do...
</span><span>}
</span>
ログイン後にコピー
ソリューション5 - 予防/情報

使用しているjQueryのバージョンが$ .browser関数をサポートしていないことをユーザーに通知するだけです。おそらく、このソリューションは使いやすさのために何もしないので、このソリューションをお勧めしませんが、特定のプラグインをブロックするために使用できます。有益なデバッグをオンにするMigrateプラグインの開発者バージョンを使用することをお勧めします。

出典: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移行プラグインを使用できます。

機能検出とは何ですか?また、jQueryブラウザ関数の代わりに使用するにはどうすればよいですか?

機能検出は、ブラウザが特定の機能をサポートするかどうかを判断するためにWeb開発で使用される手法です。ブラウザとバージョンをチェックする代わりに、特定の機能が利用可能かどうかを確認します。これは、より信頼性が高く将来のアプローチです。 Modernizrライブラリを機能検出に使用できます。 jQueryコードを更新して、jqueryの新しいバージョンで動作します。廃止された機能と動作を復元するため、古いコードはjQueryの新しいバージョンで動作します。 jQueryブラウザ関数に依存しなくなってコードを更新できない場合は、jQuery移行プラグインを一時的なソリューションとして使用できます。

jQuery移行プラグインを使用するには、jQueryを含めた後、HTMLファイルに含める必要があります。プラグインを含めたら、jQueryブラウザー機能やその他の非推奨機能を自動的に復元します。 jQueryブラウザ関数。最も人気のある代替品の1つは、より信頼性が高く将来のないアプローチである機能検出です。 Modernizrライブラリを使用して、機能検出を行うことができます。もう1つの代替品は、navigator.useragentプロパティを使用することですが、これは簡単にスプーフィングできるため推奨されません。

ブラウザ検出よりも機能検出が優先されるのはなぜですか?より信頼性が高く将来のプルーフアプローチであるため、検出。ブラウザの検出は、ユーザーエージェントの文字列に依存しています。これは、簡単にスプーフィングまたは誤って伝えることができます。一方、機能検出は、特定の機能が利用可能であるかどうかをチェックします。これは、ユーザーのブラウザの機能を決定するためのより正確な方法です。ブラウザ関数?

コードを更新して機能検出を使用するには、jQueryブラウザー関数のインスタンスを特定の機能のチェックに置き換える必要があります。 Modernizrライブラリを使用してこれを支援できます。たとえば、ユーザーがInternet Explorerを使用しているかどうかを確認する代わりに、ブラウザがInternet Explorerに固有の特定の機能をサポートしているかどうかを確認できます。

jQueryで他の非推奨機能に遭遇した場合はどうすればよいですか?

jQueryで他の非推奨機能に遭遇した場合、最良の解決策は、これらの機能に依存しなくなるようにコードを更新することです。 jQuery移行プラグインを一時的なソリューションとして使用できますが、長期的な互換性のためにコードを更新することをお勧めします。非推奨機能とその代替案に関する最新情報については、必ずjQueryドキュメントを確認してください。

以上がjquery $ .browser関数が見つからない5つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート