241 votes

Vérification si jquery est chargé en utilisant Javascript

Je tente 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 :

          $(document).ready(function(){
             if (jQuery) {  
               // jQuery est chargé  
               alert("Oui !");
             } else {
               // jQuery n'est pas chargé
               alert("Ne fonctionne pas");
             }
          });

3 votes

Ne pas utiliser un R majuscule dans "$(document).Ready"

11 votes

alert(window.$?1:0)

1 votes

Pourquoi utilisez-vous toujours l'ancienne norme XHTML? utilisez simplement à la place.

449voto

BoltClock Points 249668

quelque chose ne va pas

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

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

window.onload = function() {
    if (window.jQuery) {  
        // jQuery est chargé  
        alert("Ouais!");
    } else {
        // jQuery n'est pas chargé
        alert("Ne fonctionne pas");
    }
}

2 votes

Cela lancera toujours une erreur telle quelle lorsque jQuery est indéfini. Vous devez vérifier window.jQuery.

1 votes

@gilly3 : Oui, problèmes de portée embêtants. Fixé.

0 votes

J'ai le fichier jquery-1.6.3.min.js dans le même répertoire que le fichier html. Pas sûr pourquoi il ne se charge pas.

51voto

Tushar Shukla Points 1187

Comme indiqué dans ce lien :

if (typeof jQuery == 'undefined') {
    // jQuery N'EST PAS chargé, faire quelque chose ici.
}

il y en a quelques autres dans les commentaires du lien également, comme suit,

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

//ou

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

// ou

if (jQuery) {
    console.log("jquery est chargé");
} else {
    console.log("Non chargé");
}

Espérons que cela couvre la plupart des bonnes façons de réaliser cette tâche !!

2 votes

@JakeN Après un certain laps de temps, les votes négatifs ne peuvent plus être annulés à moins que le message ne soit modifié. Il y a cependant un problème avec ce message : if (jQuery) { lancera une erreur en mode strict si jQuery n'est pas chargé, donc ce dernier extrait de code est une mauvaise suggestion.

0 votes

@TusharShukla pour if (typeof $== 'function') { ... } pourquoi il n'y a pas d'espace entre le signe dollar et les 2 signes égaux ?

0 votes

@Grace C'était un problème d'indentation, je l'ai corrigé.

28voto

Niko Points 16715
if ('undefined' == typeof window.jQuery) {
    // jQuery non présent
} else {
    // jQuery présent
}

25voto

Alexein Points 588

Vous pouvez le faire rapidement sur l'onglet de la console lorsque vous inspectez votre page Web.

Par exemple :

$ === jQuery

Si cela renvoie true, cela signifie que c'est chargé.

0 votes

Cela va déclencher une exception si jQuery n'est pas chargé, cependant : Uncaught ReferenceError: jQuery is not defined

0 votes

JQuery pourrait ne pas être chargé en tant que "jQuery" mais seulement en tant que $.

0 votes

@TomAnderson ce serait plutôt inutile puisque jQuery est tellement populaire et spécifique qu'il serait très difficile pour quelqu'un de créer accidentellement une variable avec ce nom, est-ce que les gens le font (importer jQuery en tant que $ seulement) ?

11voto

Nika Tsilosani Points 111

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

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

Au lieu de $(document).ready(function(), utilisez window.onload = function().

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X