118 votes

vérifie si jquery a été chargé, puis le charge si c'est faux

Quelqu'un sait-il comment vérifier si jquery a été chargé (avec javascript) puis le charger s'il ne l'a pas été.

quelque chose comme

if(!jQuery) {
    //load jquery file
}

1 votes

Merci pour l'info ! j'espère qu'il n'y aura jamais besoin de l'appeler. j'essayais juste d'ajouter un peu de redondance.

1voto

Tushar Shukla Points 1187

Vous pouvez vérifier si jQuery est chargé ou non de plusieurs façons, par exemple :

if (typeof jQuery == 'undefined') {

    // jQuery IS NOT loaded, do stuff here.

}

if (typeof jQuery == 'function')
//or
if (typeof $== 'function')

if (jQuery) {
    // This will throw an error in STRICT MODE if jQuery is not loaded, so don't use if using strict mode
    alert("jquery is loaded");
} else {
    alert("Not loaded");
}

if( 'jQuery' in window ) {
    // Do Stuff
}

Après avoir vérifié que jQuery n'est pas chargé, vous pouvez charger jQuery comme suit :

Bien que la réponse à cette question ait été donnée par de nombreuses personnes dans ce billet, il n'en reste pas moins que de répondre pour que le code soit complet.

    // This part should be inside your IF condition when you do not find jQuery loaded
    var script = document.createElement('script');
    script.type = "text/javascript";
    script.src = "http://code.jquery.com/jquery-3.3.1.min.js";
    document.getElementsByTagName('head')[0].appendChild(script);

1voto

Vieux post mais j'ai fait une bonne solution qui a été testée à plusieurs endroits.

https://github.com/CreativForm/Load-jQuery-if-it-is-not-already-loaded

CODE :

(function(url, position, callback){
    // default values
    url = url || 'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js';
    position = position || 0;

    // Check is jQuery exists
    if (!window.jQuery) {
        // Initialize <head>
        var head = document.getElementsByTagName('head')[0];
        // Create <script> element
        var script = document.createElement("script");
        // Append URL
        script.src = url;
        // Append type
        script.type = 'text/javascript';
        // Append script to <head>
        head.appendChild(script);
        // Move script on proper position
        head.insertBefore(script,head.childNodes[position]);

        script.onload = function(){
            if(typeof callback == 'function') {
                callback(jQuery);
            }
        };
    } else {
        if(typeof callback == 'function') {
            callback(jQuery);
        }
    }
}('https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js', 5, function($){ 
    console.log($);
}));

Sur GitHub il y a une meilleure explication mais en général cette fonction peut être ajoutée n'importe où dans votre code HTML et vous initialiserez jquery s'il n'est pas déjà chargé.

0voto

Peter Song Points 1
var f = ()=>{
    if (!window.jQuery) {
        var e = document.createElement('script');
        e.src = "https://code.jquery.com/jquery-3.2.1.min.js";
        e.onload = function () {
            jQuery.noConflict();
            console.log('jQuery ' + jQuery.fn.jquery + ' injected.');
        };
        document.head.appendChild(e);
    } else {
        console.log('jQuery ' + jQuery.fn.jquery + '');
    }
};
f();

0voto

Michael Points 11
<script>
if (typeof(jQuery) == 'undefined'){
        document.write('<scr' + 'ipt type="text/javascript" src=" https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></scr' + 'ipt>');
}
</script>

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