Memeriksa apakah jquery diambil menggunakan Javascript

176

Saya mencoba memeriksa apakah Perpustakaan Jquery saya dimuat ke halaman HTML saya. Saya memeriksa untuk melihat apakah itu berfungsi, tetapi ada sesuatu yang tidak benar. Inilah yang saya miliki:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script type="text/javascript" src="/query-1.6.3.min.js"></script>
        <script type="text/javascript">
          $(document).ready(function(){
             if (jQuery) {  
               // jQuery is loaded  
               alert("Yeah!");
             } else {
               // jQuery is not loaded
               alert("Doesn't Work");
             }
          });
        </script>
SoftwareSavant
sumber
3
Jangan gunakan huruf kapital R dalam "$ (dokumen).
Ready
7
alert(window.$?1:0)
Thielicious
Mengapa Anda masih menggunakan standar xhtml lama? gunakan <!doctype html>saja
Luke the Geek
Jika $(document)fungsi siap berjalan sama sekali, maka jquery dimuat. Jadi Anda bisa melakukan $(document).ready(function(){ alert("Ready!"); }); Granted, ini tidak akan menampilkan peringatan jika jquery gagal dijalankan. Tapi itu sudah cukup, jika Anda hanya perlu memverifikasi bahwa Anda telah merujuk ke perpustakaan jquery dengan benar.
ToolmakerSteve

Jawaban:

338

ada sesuatu yang tidak beres

Nah, Anda menggunakan jQuery untuk memeriksa keberadaan jQuery. Jika jQuery tidak dimuat maka $()bahkan tidak akan berjalan sama sekali dan panggilan balik Anda tidak akan dijalankan, kecuali jika Anda menggunakan pustaka lain dan pustaka itu terjadi untuk berbagi $()sintaks yang sama .

Hapus Anda $(document).ready()(gunakan sesuatu seperti window.onload):

window.onload = function() {
    if (window.jQuery) {  
        // jQuery is loaded  
        alert("Yeah!");
    } else {
        // jQuery is not loaded
        alert("Doesn't Work");
    }
}
BoltClock
sumber
1
Ini masih akan menimbulkan kesalahan seperti saat jQuerytidak terdefinisi. Anda perlu memeriksa window.jQuery.
gilly3
@ gilly3: Ya, masalah pelingkupan sial. Tetap.
BoltClock
Saya memiliki file jquery-1.6.3.min.js di direktori yang sama dengan file html. Tidak yakin mengapa itu tidak dimuat.
SoftwareSavant
3
@ DemainEvent: Apakah mereka berdua di direktori root? Anda srcmemiliki /petunjuk, itu berarti mencari di root.
BoltClock
Sebenarnya tidak. Biarkan saya mengubahnya dan mencobanya.
SoftwareSavant
46

Sesuai tautan ini :

if (typeof jQuery == 'undefined') {
    // jQuery IS NOT loaded, do stuff here.
}


ada beberapa komentar lagi di tautan seperti,

if (typeof jQuery == 'function') {...}

//or

if (typeof $== 'function') {...}

// or

if (jQuery) {
    alert("jquery is loaded");
} else {
    alert("Not loaded");
}


Semoga ini mencakup sebagian besar cara yang baik untuk menyelesaikan hal ini !!

Tushar Shukla
sumber
2
@JakeN Setelah jangka waktu tertentu, downvotes tidak dapat dibatalkan kecuali posnya diedit. Namun ada satu masalah dengan postingan ini: if (jQuery) {akan membuat kesalahan dalam mode ketat jika jQuery tidak dimuat, sehingga snipet kode terakhir adalah saran yang buruk.
JLRishe
21
if ('undefined' == typeof window.jQuery) {
    // jQuery not present
} else {
    // jQuery present
}
Niko
sumber
15

Anda dapat melakukan ini dengan cepat di tab-konsol ketika memeriksa halaman web Anda.

Misalnya:

$ === jQuery

Jika kembali trueberarti itu dimuat.

Alexein
sumber
Ini akan menimbulkan pengecualian jika jQuery tidak dimuat, meskipun:Uncaught ReferenceError: jQuery is not defined
Batkins
10

Hanya sedikit modifikasi yang mungkin benar-benar menyelesaikan masalah:

window.onload = function() {
   if (window.jQuery) {  
       // jQuery is loaded  
       alert("Yeah!");
   } else {
    location.reload();
   }
}

Alih-alih $(document).Ready(function()digunakan window.onload = function().

Nika Tsilosani
sumber
1

Jika jQuerysedang memuat secara tidak sinkron, Anda dapat menunggu hingga didefinisikan, memeriksa setiap periode waktu:

(function() {
    var a = setInterval( function() {
        if ( typeof window.jQuery === 'undefined' ) {
            return;
        }
        clearInterval( a );

        console.log( 'jQuery is loaded' ); // call your function with jQuery instead of this
    }, 500 );
})();

Metode ini dapat digunakan untuk variabel apa pun, Anda sedang menunggu untuk muncul.

V.Volkov
sumber
-2

Anda cukup mengetik window.jQueryKonsol. Jika mengembalikan fungsi (e, n) ... Kemudian dipastikan bahwa jquery dimuat dan berfungsi dengan sukses.

Bharadwaj
sumber
-4

Cara cepat adalah menjalankan perintah jQuery di konsol pengembang. Pada peramban apa pun tekan F12 dan coba akses salah satu elemen.

 $("#sideTab2").css("background-color", "yellow");

masukkan deskripsi gambar di sini

Jajikanth pydimarla
sumber