Rumah >hujung hadapan web >tutorial js >5 Cara untuk Memperbaiki JQuery $ .Browser Function Hilang Tidak Dijumpai

5 Cara untuk Memperbaiki JQuery $ .Browser Function Hilang Tidak Dijumpai

Lisa Kudrow
Lisa Kudrowasal
2025-02-24 09:10:12415semak imbas

3

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

Fungsi JQuery $ .Browser telah ditutup kerana kelemahannya terhadap spoofing dan salah nyataan. Pemaju digalakkan untuk mengelakkan kod khusus penyemak imbas dan sebaliknya menggunakan pengesanan ciri untuk hasil yang lebih dipercayai. 5 Cara untuk Memperbaiki JQuery $ .Browser Function Hilang Tidak Dijumpai

Lima penyelesaian yang mungkin untuk fungsi JQuery $. Lembu yang hilang termasuk migrasi jQuery dengan plugin migrasi jQuery, menggunakan Modernizr untuk pengesanan ciri, menggunakan $. pengguna mengenai fungsi yang tidak disokong.

JQuery Migrate Plugin boleh digunakan sebagai penyelesaian sementara untuk memulihkan ciri -ciri dan tingkah laku yang tidak ditetapkan dalam versi baru jQuery. Walau bagaimanapun, mengemas kini kod anda untuk tidak lagi bergantung pada ciri-ciri yang tidak disyorkan adalah disyorkan untuk keserasian jangka panjang.
  • ok jadi sekarang ia secara rasmi telah diisytiharkan bahawa fungsi $. Lembu telah ditolak. Apa yang kita buat? Jangan panik Saya mempunyai 5 penyelesaian yang mungkin di bawah untuk anda melaksanakan sebagai budi bicara anda. Mesej GitHub ini dari repo mengatakan semuanya benar -benar:
  • "Tidak lagi mengekalkan repo ini tidak aktif. Sila gunakan plugin migrasi jQuery jika $ .browser diperlukan, menulis semula kod, atau usenavigator.useragent secara langsung. "
  • jadi mengapa $ .browser telah dikeluarkan?

Kebanyakan pemaju pemikiran pertama apabila mereka mula melihat kesilapan yang muncul, berfikir "Apa yang ada, mengapa $ .Browser telah dikeluarkan?". Baiklah, saya jelaskan sedikit tentang beberapa sebab yang mungkin untuk ini. Kerana $ .Browser menggunakan navigator.useragent untuk menentukan platform, ia terdedah kepada spoofing oleh pengguna atau salah nyataan oleh penyemak imbas itu sendiri. Ia sentiasa terbaik untuk mengelakkan kod khusus penyemak imbas sepenuhnya jika mungkin. $ .Support harta tersedia untuk mengesan sokongan untuk ciri -ciri tertentu dan bukannya bergantung pada $ .browser.

Bendera yang tersedia ialah:

WebKit (seperti JQuery 1.4)

safari (decrecated)

opera
  • MSIE (perhatikan bahawa IE8 mendakwa 7 dalam paparan keserasian)
  • Mozilla
  • penyelesaian 1 - Migrasi jQuery
  • Gunakan plugin migrasi jQuery untuk menaik taraf versi jQuery terdahulu untuk jQuery 1.9.x. Berikut adalah kod $. Lembu dalam semua kemuliaannya:
Penyelesaian 2 - Gunakan Modernizr

Gunakan Modernizr untuk menggunakan pengesanan ciri, HTML5/CSS3 dan lain -lain ... bukannya pengesanan penyemak imbas asas. Saya rasa modenizr hebat!

penyelesaian 3 - Gunakan jQuery.support

Gunakan $. Support baru untuk menggunakan pengesanan ciri & bug. Sekali lagi JQuery melakukan semua kerja keras dan melakukan ujian pada pelayar dan kedai hasil pada objek jQuery.Support (setiap beban halaman secara lalai). Kami kemudian boleh meminta pertanyaan mudah objek ini untuk menentukan adalah ciri yang tersedia untuk digunakan atau tidak. Contohnya untuk memeriksa sokongan kelegapan hanya lakukan ini:

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>

Penyelesaian 4 - Gunakan pengesanan JavaScript/manual

Mengesan pelayar dan versi menggunakan coretan kod JavaScript berikut. QueirksMode mempunyai objek pengesanan pelayar/peranti JavaScript yang cukup luas yang boleh membuktikan berguna.

<span>if (jQuery.support.opacity)
</span><span>{
</span>   <span>//opacity you may do...
</span><span>}
</span>

Penyelesaian 5 - Pencegahan/Inform

Cukup beritahu pengguna bahawa versi jQuery yang mereka gunakan tidak menyokong fungsi $. Mungkin tidak akan mengesyorkan penyelesaian ini kerana ia tidak digunakan untuk kegunaan, tetapi boleh digunakan untuk menyekat plugin tertentu. Saya akan mencadangkan menggunakan versi pemaju plugin berhijrah yang menghidupkan debugging bermaklumat.

   <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>

Sumber: https://raw.github.com/house9/jquery-iframe-auto-height/master/release/jquery.iframe-auto-height.plugin.1.9.1.js

seperti biasa, komen, cadangan dan penambahbaikan yang dialu -alukan.

Soalan Lazim (Soalan Lazim) Mengenai Fungsi Pelayar JQuery

Apakah fungsi penyemak imbas jQuery dan mengapa ia ditamatkan? Ia digunakan untuk mengesan penyemak imbas dan versi yang digunakan oleh pengguna. Walau bagaimanapun, fungsi ini telah ditutup dalam versi JQuery 1.3 dan dikeluarkan dalam versi 1.9. Alasan untuk penolakannya ialah ia menggalakkan kod khusus pelayar, yang bertentangan dengan prinsip peningkatan progresif dan kemerosotan anggun. Sebaliknya, pemaju digalakkan untuk menggunakan pengesanan ciri, yang merupakan pendekatan yang lebih dipercayai dan masa depan. Fungsi penyemak imbas jQuery bermakna ia tidak lagi disokong dalam versi baru jQuery. Jika anda menggunakan versi jQuery yang 1.9 atau lebih baru, sebarang kod yang bergantung pada fungsi pelayar jQuery tidak akan berfungsi. Ini berpotensi memecahkan laman web atau aplikasi anda jika ia bergantung pada fungsi ini. Penyelesaian terbaik adalah untuk mengemas kini kod anda untuk tidak lagi bergantung pada fungsi ini. Sebaliknya, gunakan pengesanan ciri untuk menentukan keupayaan penyemak imbas pengguna. Jika anda tidak dapat mengemas kini kod anda, anda boleh menggunakan plugin JQuery Migrate, yang mengembalikan fungsi pelayar jQuery.

Apakah pengesanan ciri dan bagaimana saya boleh menggunakannya sebagai pengganti fungsi pelayar jQuery? Daripada menyemak penyemak imbas dan versi, anda periksa sama ada ciri tertentu tersedia. Ini adalah pendekatan yang lebih dipercayai dan masa depan. Anda boleh menggunakan Perpustakaan Modernizr untuk Pengesanan Ciri. Untuk mengemas kini kod jQuery anda untuk berfungsi dengan versi baru jQuery. Ia mengembalikan ciri -ciri dan tingkah laku yang tidak ditetapkan supaya kod lama masih berfungsi dengan versi jQuery yang lebih baru. Sekiranya anda tidak dapat mengemas kini kod anda untuk tidak lagi bergantung pada fungsi pelayar jQuery, anda boleh menggunakan plugin migrasi jQuery sebagai penyelesaian sementara.

Untuk menggunakan plugin migrasi jQuery, anda perlu memasukkannya ke dalam fail HTML anda selepas memasukkan jQuery. Sebaik sahaja anda telah memasukkan plugin, ia akan memulihkan fungsi pelayar jQuery secara automatik dan ciri -ciri yang tidak lama lagi. Fungsi pelayar jQuery. Salah satu alternatif yang paling popular adalah pengesanan ciri, yang merupakan pendekatan yang lebih dipercayai dan masa depan. Anda boleh menggunakan Perpustakaan Modernizr untuk pengesanan ciri. Alternatif lain ialah menggunakan navigator.useragent property, walaupun ini tidak disyorkan kerana ia dapat dengan mudah dimusnahkan. Pengesanan kerana ia adalah pendekatan yang lebih dipercayai dan masa depan. Pengesanan penyemak imbas bergantung pada rentetan ejen pengguna, yang boleh dengan mudah dimusnahkan atau disalahgunakan. Sebaliknya, pemeriksaan pengesanan ciri jika ciri tertentu tersedia, yang merupakan cara yang lebih tepat untuk menentukan keupayaan penyemak imbas pengguna. Fungsi penyemak imbas?

Untuk mengemas kini kod anda untuk menggunakan pengesanan ciri, anda perlu menggantikan sebarang contoh fungsi penyemak imbas jQuery dengan cek untuk ciri -ciri tertentu. Anda boleh menggunakan Perpustakaan Modernizr untuk membantu dengan ini. Sebagai contoh, bukannya menyemak sama ada pengguna menggunakan Internet Explorer, anda boleh menyemak sama ada penyemak imbas menyokong ciri khusus yang unik untuk Internet Explorer.

Apa yang harus saya lakukan jika saya menghadapi ciri -ciri yang tidak ditetapkan dalam jQuery? Anda boleh menggunakan plugin migrasi jQuery sebagai penyelesaian sementara, tetapi disyorkan untuk mengemas kini kod anda untuk keserasian jangka panjang. Sentiasa periksa dokumentasi jQuery untuk maklumat terkini mengenai ciri -ciri yang tidak ditetapkan dan alternatif mereka.

Atas ialah kandungan terperinci 5 Cara untuk Memperbaiki JQuery $ .Browser Function Hilang Tidak Dijumpai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:6 alat html5 bergunaArtikel seterusnya:6 alat html5 berguna