Je suis en train d'écrire un petit outil JavaScript que j'ai l'intention de mettre à la disposition d'autres personnes et qui utilise jQuery. Mon rêve pour ce petit utilitaire est que les gens puissent inclure un seul fichier .js
à partir d'une source distante et, quand ce fichier est chargé, le faire vérifier pour voir si jQuery a déjà été inclus et, si c'est le cas, s'assurer qu'il est une version assez récente pour être compatible avec ce que mon code doit faire. Certains pseudo-code qui peut expliquer ma question plus clairement (ce code apparaît en haut du fichier .js
unique je l'ai mentionné plus tôt):Inclure dynamiquement jQuery en utilisant JavaScript s'il n'est pas déjà présent
if jQuery is loaded {
if version is less than (say) 1.3 {
// load latest version of jQuery
}
} else {
// load latest version of jQuery
}
// and do the jQuery.noConflict()
// dance to avoid trampling any other libraries, etc. that the
// user may be utilizing.
// The rest of my code lives here, happy in the knowledge that it's running in
// isolation from the rest of the JS that the page knows about.
Ma question, distillée en trois parties amicales:
- Est est-il possible de charger deux versions séparées de jQuery sans qu'elles se craquent les unes sur les autres? Puis-je arrêter l'exécution de mon code JS pendant le chargement de jQuery, puis continuer?
- Est-il possible d'utiliser noConflict() tel que je le décris? Ou devrais-je juste appeler tout en utilisant jQuery() et ne pas s'en préoccuper?
L'idée globale est ici que tout ancien utilisateur peut saisir un petit extrait de HTML et déposez-le sur leur site/blog/tout pour que cela fonctionne juste ™. Et puisque de nombreuses plates-formes de publication modernes sont maintenant livrées avec jQuery, je ne peux pas simplement supposer qu'il ne fonctionne pas et l'inclure.
Merci de votre temps, et s'il vous plaît laissez-moi savoir si une partie de ce n'est pas clair ou si je peux fournir un contexte/détail supplémentaire pour rendre votre réponse plus facile.
Question: où se doMyStuff' 'a appelé dans le cas' else'? –
Puisque jQuery peut maintenant être trouvé dans la nature comme 1.10.2 et 2.0.3, cette regex ne fonctionnerait plus très bien. Pour le prouver à l'avenir, je suggère ceci à la place: '/(^1\.([3-9]|\d{2,}))|((^[2-9])|\\d{2 ,})/' –