2014-07-10 6 views
0

Disons au milieu d'une génération de page, par ex. Script PHP, vous devez attacher du code avec jQuery 'prêt, par exemple.

$(document).ready(function() { 
    console.log("hi!"); 
}); 

Le problème est, à ce stade, vous ne savez pas si jQuery a ou n'a pas été chargé, comment modifier le code ci-dessus afin les deux cas seront traités?

Mise à jour: La raison pour laquelle je demande est que je veux ajouter quelques codes JS dans un billet de blog WordPress, mais le jQuery est chargé dans le pied de page (que je ne peux pas modifier), donc je veux une solution fiable qui fonctionne à la fois lorsque jQuery est chargé dans l'en-tête et le pied de page.

+0

Essayez ceci: if ($) {...} –

+4

Il ne suffit pas de joindre du code au milieu de la génération de la page - il suffit d'inclure tout à la fin. Ou, incluez-le après votre balise de script qui importe jQuery. Si vous l'incluez avant, cela ne marchera jamais. Si vous incluez le code après, cela fonctionnera toujours. Aussi simple que cela. – MMM

+0

Si votre code est inséré après le script d'importation de jQuery, et si vous ne déclarez pas explicitement le script comme asynchrone, il ne sera pas exécuté avant le chargement de jQuery. Est-ce que ça répond à votre question ? Sinon, quel est votre cas d'utilisation précis? –

Répondre

1

Si vous avez seulement la fonction console.log() à l'intérieur du document prêt :) (je veux dire pas jQuery)

if(typeof window.jQuery === "undefined") { 
    window.onload = function() { 
    console.log("hi!"); 
    } 
} else { 
    jQuery(document).ready(function() { 
    console.log("hi!"); 
    }); 
} 

Else (MISE À JOUR)

var j = document.createElement('script'); 
j.type = "text/javascript"; 
j.url = "url/to/your/jQuery"; 
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(j, s); 
/** then your code */ 
Questions connexes