Verifica se jquery è caricato tramite Javascript


176

Sto cercando di verificare se la mia libreria Jquery è caricata sulla mia pagina HTML. Sto verificando se funziona, ma qualcosa non va. Ecco cosa ho:

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

3
Non usare la R maiuscola in "$ (documento). Pronto"
Serigan,

7
alert(window.$?1:0)
Thielicious il

Perché stai ancora usando il vecchio standard xhtml? basta usare <!doctype html>invece
Luke the Geek,

Se la $(document)funzione ready è in esecuzione, viene caricato jquery. Quindi potresti semplicemente fare $(document).ready(function(){ alert("Ready!"); }); Granted, questo non mostrerà un avviso se jquery non riesce a funzionare. Ma è sufficiente, se devi semplicemente verificare di aver fatto correttamente riferimento alla libreria jquery.
ToolmakerSteve

Risposte:


338

qualcosa non quadra

Bene, stai usando jQuery per verificare la presenza di jQuery. Se jQuery non viene caricato $(), non verrà nemmeno eseguito e il callback non verrà eseguito, a meno che non si stia utilizzando un'altra libreria e tale libreria condivida la stessa$() sintassi.

Rimuovi il tuo $(document).ready()(usa window.onloadinvece qualcosa di simile ):

window.onload = function() {
    if (window.jQuery) {  
        // jQuery is loaded  
        alert("Yeah!");
    } else {
        // jQuery is not loaded
        alert("Doesn't Work");
    }
}

1
Questo genererà comunque un errore come quando jQuerynon è definito. È necessario verificare window.jQuery.
gilly3,

@ gilly3: Sì, fastidiosi problemi di scoping. Fisso.
BoltClock

Ho il file jquery-1.6.3.min.js nella stessa directory del file html. Non so perché non si carica.
SoftwareSantant

3
@DmainEvent: sono entrambi nella directory principale? Il tuo srcha un vantaggio /, ciò significa che sta cercando nella radice.
BoltClock

In realtà no. Permettetemi di cambiarlo e provarlo.
SoftwareSantant

46

Secondo questo link:

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


ce ne sono alcuni altri nei commenti del link, come

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

//or

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

// or

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


Spero che questo copra la maggior parte dei buoni modi per fare questa cosa !!


2
@JakeN Dopo un certo periodo di tempo, i voti negativi non possono essere annullati se il post non viene modificato. C'è un problema con questo post, però: if (jQuery) {genererà un errore in modalità rigorosa se jQuery non è caricato, quindi l'ultimo frammento di codice è un suggerimento negativo.
JLRè il

21
if ('undefined' == typeof window.jQuery) {
    // jQuery not present
} else {
    // jQuery present
}

15

Puoi farlo velocemente nella scheda console quando controlli la tua pagina web.

Per esempio:

$ === jQuery

Se restituisce truesignifica che è caricato.


Ciò solleverà un'eccezione se jQuery non è caricato, tuttavia:Uncaught ReferenceError: jQuery is not defined
Batkins

10

Solo una piccola modifica che potrebbe effettivamente risolvere il problema:

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

Invece di $(document).Ready(function()usare window.onload = function().


1

Se jQuerysi carica in modo asincrono, è possibile attendere fino a quando non viene definito, verificandolo per ogni periodo di tempo:

(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 );
})();

Questo metodo può essere utilizzato per qualsiasi variabile, stai aspettando di apparire.


-2

Puoi semplicemente digitare window.jQueryConsole. Se restituisce una funzione (e, n) ... Quindi viene confermato che jquery è caricato e funziona correttamente.


-4

Un modo rapido è eseguire un comando jQuery nella console per sviluppatori. Su qualsiasi browser premi F12 e prova ad accedere a qualsiasi elemento.

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

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.