Vérifier si jquery est chargé en utilisant Javascript

176

J'essaie de vérifier si ma bibliothèque Jquery est chargée sur ma page HTML. Je vérifie si cela fonctionne, mais quelque chose ne va pas. Voici ce que j'ai:

<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>
LogicielSavant
la source
3
N'utilisez pas de R majuscule dans "$ (document). Prêt"
Serigan
7
alert(window.$?1:0)
Thielicious
Pourquoi utilisez-vous toujours l'ancienne norme xhtml? utilisez simplement à la <!doctype html>place
Luke the Geek
Si la $(document)fonction ready s'exécute, alors jquery est chargé. Vous pouvez donc simplement faire $(document).ready(function(){ alert("Ready!"); }); Accordé, cela n'affichera pas d'alerte si jquery ne s'exécute pas. Mais cela suffit, si vous avez simplement besoin de vérifier que vous avez correctement fait référence à la bibliothèque jquery.
ToolmakerSteve

Réponses:

338

quelque chose ne tourne pas rond

Eh bien, vous utilisez jQuery pour vérifier la présence de jQuery. Si jQuery n'est pas chargé, il $()ne s'exécutera même pas du tout et votre rappel ne s'exécutera pas, sauf si vous utilisez une autre bibliothèque et que cette bibliothèque partage la même $()syntaxe.

Supprimez votre $(document).ready()(utilisez quelque chose comme à la window.onloadplace):

window.onload = function() {
    if (window.jQuery) {  
        // jQuery is loaded  
        alert("Yeah!");
    } else {
        // jQuery is not loaded
        alert("Doesn't Work");
    }
}
BoltClock
la source
1
Cela générera toujours une erreur telle qu'elle est quand jQueryest indéfini. Vous devez vérifier window.jQuery.
gilly3
@ gilly3: Ouais, des problèmes de cadrage embêtants. Fixé.
BoltClock
J'ai le fichier jquery-1.6.3.min.js dans le même répertoire que le fichier html. Je ne sais pas pourquoi il ne se charge pas.
SoftwareSavant
3
@DmainEvent: Sont-ils tous les deux dans le répertoire racine? Votre srca une tête /, cela signifie qu'il regarde dans la racine.
BoltClock
En fait non. Laissez-moi changer cela et essayer.
SoftwareSavant
46

Selon ce lien:

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


il y en a quelques autres dans les commentaires du lien ainsi que,

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

//or

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

// or

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


J'espère que cela couvre la plupart des bonnes façons de faire cette chose !!

Tushar Shukla
la source
2
@JakeN Après un certain temps, les votes négatifs ne peuvent pas être annulés à moins que le message ne soit modifié. Il y a cependant un problème avec ce message: if (jQuery) {générera une erreur en mode strict si jQuery n'est pas chargé, de sorte que le dernier extrait de code est une mauvaise suggestion.
JLRishe
21
if ('undefined' == typeof window.jQuery) {
    // jQuery not present
} else {
    // jQuery present
}
Niko
la source
15

Vous pouvez le faire rapidement sur l'onglet de la console lors de l'inspection de votre page Web.

Par exemple:

$ === jQuery

S'il retourne, truecela signifie qu'il est chargé.

Alexein
la source
Cela Uncaught ReferenceError: jQuery is not defined
lèvera
10

Juste une petite modification qui pourrait en fait résoudre le problème:

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

Au lieu de l' $(document).Ready(function()utiliser window.onload = function().

Nika Tsilosani
la source
1

Si le jQuerychargement est asynchrone, vous pouvez attendre qu'il soit défini, en le vérifiant à chaque période:

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

Cette méthode peut être utilisée pour n'importe quelle variable, vous attendez d'apparaître.

V.Volkov
la source
-2

Vous pouvez simplement taper window.jQuerydans la console. S'il renvoie une fonction (e, n) ... Ensuite, il est confirmé que la jquery est chargée et fonctionne correctement.

Bharadwaj
la source
-4

Un moyen rapide consiste à exécuter une commande jQuery dans la console développeur. Sur n'importe quel navigateur, appuyez sur F12 et essayez d'accéder à l'un des éléments.

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

entrez la description de l'image ici

Jajikanth pydimarla
la source