12
votes

Deux versions jQuery sur la même page

est-il possible d'avoir 2 versions de JQuery différentes dans le même document et de les avoir à ne pas entrer en collision les unes avec les autres?

Par exemple, si je crée un bookmarklet et que je veux baser le code sur jQuery. Ce bookmarklet est injecté sur une page qui utilise une autre version de jQuery puis mon code écraserait la version utilisée sur la page.

est-il possible d'éviter cela? Ou existe-t-il d'autres bibliothèques qui fournissent cette fonctionnalité Ou peut-être que je devrais repenser le tout.

Merci pour des réponses et des pointeurs,

Bob


4 commentaires

Vous pouvez vérifier si JQuery est déjà sur une page avant de l'injecter à nouveau.


Vous devriez définitivement repenser cela. Vous devez mettre à jour les fonctions plus anciennes pour travailler avec la nouvelle jQuery, y compris les deux, c'est juste une tonne de blague et un souhait pour les collisions.


Avez-vous un contrôle sur la version de JQuery étant ajouté à la page? Vous ne voulez pas que vos visiteurs aient à télécharger une autre version de la bibliothèque si elles peuvent l'aider - c'est une mauvaise pratique et gonfle la variation du document pour vos visiteurs.


Dupliqué possible de Puis-je utiliser plusieurs versions de jQuery sur la même page?


3 Réponses :


2
votes

Voici un moyen de détecter est que JQuery est déjà présent: jQuery dans widget

Travailler la version la plus ancienne de JQuery Votre code fonctionnera .. et refuse de travailler si la version présente est trop ancienne. Seuls quelques personnes ne manqueront pas, la plupart des sites utilisant JQuery sont joliment à jour.


0 commentaires

0
votes

Pourquoi pas seulement avoir des versions différentes de votre JavaScript, pour différentes versions de JQuery, consultez la version sur la page et obtenez le code approprié qui fonctionnera sur cette version de JQuery.

Ce serait plus sûr, car toute autre chose peut être très fragile, comme on dirait que vous n'avez pas de contrôle sur la version de JQuery qui sera sur la page.


0 commentaires

12
votes

JQuery vient avec un moyen d'éviter les collisions. Une fois que vous avez chargé la première version, vous pouvez l'affecter à une variable différente.

var $j = jQuery.noConflict();


2 commentaires

Bob ne contrôle pas lorsque la première version est chargée, car cela se produit sur un site 3ème partie via un bookmarket. Vous pouvez appeler NOCONFLCT avant d'ajouter la version la plus récente viareeeyement («script») - qui «mettra à niveau 'le site tiers. Pouvez-vous supposer que le code 3ème Parties est compatible?


Avec les versions HELPER, vous pouvez vous allumer entre différentes versions de JQuery quand vous le souhaitez. Dites simplement des versions.Utilisez ('JQuery', 'Par défaut') ou versions.Utilisez ('jQuery', 'Dernière') après avoir été ajoutés à commuter. Si son code utilise la version la plus récente et que le site troisième partie n'est pas, il doit simplement s'assurer qu'il définit correctement la version au début et à la fin de son code.