


5 Cara untuk Memperbaiki JQuery $ .Browser Function Hilang Tidak Dijumpai
Feb 24, 2025 am 09:10 AM3
Takeaways Key
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.
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:
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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Mekanisme pengumpulan sampah JavaScript secara automatik menguruskan memori melalui algoritma pembersihan tag untuk mengurangkan risiko kebocoran ingatan. Enjin melintasi dan menandakan objek aktif dari objek akar, dan tidak bertanda dianggap sebagai sampah dan dibersihkan. Sebagai contoh, apabila objek tidak lagi dirujuk (seperti menetapkan pembolehubah kepada null), ia akan dikeluarkan dalam pusingan seterusnya kitar semula. Punca kebocoran memori yang biasa termasuk: ① Pemasa atau pendengar peristiwa yang tidak jelas; ② Rujukan kepada pembolehubah luaran dalam penutupan; ③ Pembolehubah global terus memegang sejumlah besar data. Enjin V8 mengoptimumkan kecekapan kitar semula melalui strategi seperti kitar semula generasi, penandaan tambahan, kitar semula selari/serentak, dan mengurangkan masa menyekat benang utama. Semasa pembangunan, rujukan global yang tidak perlu harus dielakkan dan persatuan objek harus dihiasi dengan segera untuk meningkatkan prestasi dan kestabilan.

Terdapat tiga cara biasa untuk memulakan permintaan HTTP dalam node.js: Gunakan modul terbina dalam, axios, dan nod-fetch. 1. Gunakan modul HTTP/HTTPS terbina dalam tanpa kebergantungan, yang sesuai untuk senario asas, tetapi memerlukan pemprosesan manual jahitan data dan pemantauan ralat, seperti menggunakan https.get () untuk mendapatkan data atau menghantar permintaan pos melalui .write (); 2.AXIOS adalah perpustakaan pihak ketiga berdasarkan janji. Ia mempunyai sintaks ringkas dan fungsi yang kuat, menyokong async/menunggu, penukaran JSON automatik, pemintas, dan lain -lain. Adalah disyorkan untuk memudahkan operasi permintaan tak segerak; 3.Node-Fetch menyediakan gaya yang serupa dengan pengambilan penyemak imbas, berdasarkan janji dan sintaks mudah

Jenis data JavaScript dibahagikan kepada jenis primitif dan jenis rujukan. Jenis primitif termasuk rentetan, nombor, boolean, null, undefined, dan simbol. Nilai -nilai tidak berubah dan salinan disalin apabila memberikan nilai, jadi mereka tidak mempengaruhi satu sama lain; Jenis rujukan seperti objek, tatasusunan dan fungsi menyimpan alamat memori, dan pembolehubah menunjuk objek yang sama akan mempengaruhi satu sama lain. Typeof dan Instanceof boleh digunakan untuk menentukan jenis, tetapi memberi perhatian kepada isu -isu sejarah TypeOfNull. Memahami kedua -dua jenis perbezaan ini dapat membantu menulis kod yang lebih stabil dan boleh dipercayai.

Helo, pemaju JavaScript! Selamat datang ke berita JavaScript minggu ini! Minggu ini kami akan memberi tumpuan kepada: Pertikaian tanda dagangan Oracle dengan Deno, objek masa JavaScript baru disokong oleh pelayar, kemas kini Google Chrome, dan beberapa alat pemaju yang kuat. Mari mulakan! Pertikaian tanda dagangan Oracle dengan percubaan Deno Oracle untuk mendaftarkan tanda dagangan "JavaScript" telah menyebabkan kontroversi. Ryan Dahl, pencipta Node.js dan Deno, telah memfailkan petisyen untuk membatalkan tanda dagangan, dan dia percaya bahawa JavaScript adalah standard terbuka dan tidak boleh digunakan oleh Oracle

Rangka kerja JavaScript mana yang terbaik? Jawapannya ialah memilih yang paling sesuai mengikut keperluan anda. 1. REACT adalah fleksibel dan bebas, sesuai untuk projek sederhana dan besar yang memerlukan penyesuaian tinggi dan keupayaan seni bina pasukan; 2. Angular menyediakan penyelesaian lengkap, sesuai untuk aplikasi peringkat perusahaan dan penyelenggaraan jangka panjang; 3. Vue mudah digunakan, sesuai untuk projek kecil dan sederhana atau perkembangan pesat. Di samping itu, sama ada terdapat timbunan teknologi sedia ada, saiz pasukan, kitaran hayat projek dan sama ada SSR diperlukan juga faktor penting dalam memilih rangka kerja. Singkatnya, tidak ada kerangka terbaik, pilihan terbaik adalah yang sesuai dengan keperluan anda.

IIFE (Segera Dilanjutkan FunctionExpression) adalah ekspresi fungsi yang dilaksanakan dengan segera selepas definisi, digunakan untuk mengasingkan pembolehubah dan mengelakkan mencemarkan skop global. Ia dipanggil dengan membungkus fungsi dalam kurungan untuk menjadikannya ungkapan dan sepasang kurungan segera diikuti olehnya, seperti (fungsi () {/code/}) ();. Penggunaan terasnya termasuk: 1. Elakkan konflik berubah -ubah dan mencegah pertindihan penamaan antara skrip berganda; 2. Buat skop peribadi untuk menjadikan pembolehubah dalaman tidak kelihatan; 3. Kod modular untuk memudahkan permulaan tanpa mendedahkan terlalu banyak pembolehubah. Kaedah penulisan biasa termasuk versi yang diluluskan dengan parameter dan versi fungsi anak panah ES6, tetapi perhatikan bahawa ungkapan dan ikatan mesti digunakan.

Janji adalah mekanisme teras untuk mengendalikan operasi tak segerak dalam JavaScript. Memahami panggilan rantaian, pengendalian ralat dan gabungan adalah kunci untuk menguasai aplikasi mereka. 1. Panggilan rantai mengembalikan janji baru melalui .then () untuk merealisasikan persamaan proses tak segerak. Setiap .then () menerima hasil sebelumnya dan boleh mengembalikan nilai atau janji; 2. Pengendalian ralat harus menggunakan .catch () untuk menangkap pengecualian untuk mengelakkan kegagalan senyap, dan boleh mengembalikan nilai lalai dalam tangkapan untuk meneruskan proses; 3. Gabungan seperti janji.all () (berjaya hanya berjaya selepas semua kejayaan), janji.race () (penyempurnaan pertama dikembalikan) dan janji.allsettled () (menunggu semua penyelesaian)

CACHEAPI adalah alat yang disediakan oleh penyemak imbas kepada permintaan rangkaian cache, yang sering digunakan bersempena dengan ServiceWorker untuk meningkatkan prestasi laman web dan pengalaman luar talian. 1. Ia membolehkan pemaju menyimpan sumber secara manual seperti skrip, helaian gaya, gambar, dan lain -lain; 2. Ia boleh memadankan tindak balas cache mengikut permintaan; 3. Ia menyokong memotong cache tertentu atau membersihkan seluruh cache; 4. Ia boleh melaksanakan keutamaan cache atau strategi keutamaan rangkaian melalui perkhidmatan pekerja yang mendengar acara mengambil; 5. Ia sering digunakan untuk sokongan luar talian, mempercepat kelajuan akses berulang, sumber utama dan kandungan kemas kini latar belakang; 6. Apabila menggunakannya, anda perlu memberi perhatian kepada kawalan versi cache, sekatan penyimpanan dan perbezaan dari mekanisme caching HTTP.
