2009-02-25 11 views
5

Je souhaite utiliser jQuery dans une bibliothèque JS add-on qui peut être ajoutée à des sites Web aléatoires. Ces sites Web peuvent ou non utiliser jQuery déjà.jQuery dans le widget

J'ai 3 questions autour de cette réalité:

  1. Je vais probablement charger jQuery dynamiquement à partir de mon propre script js (pas d'une balise de script dans la tête du document). Will jquery travailler de cette façon? Comment puis-je m'assurer qu'il fonctionnera dans le temps sans avoir le standard $ (document) .ready (function() {} dans le document principal?

  2. Que dois-je faire pour éviter les conflits avec jQuery existant (le cas échéant) . dans le code du site web

  3. est-il un moyen recommandé d'ajouter un widget qui inclut jQuery à des sites aléatoires tout en fournissant un minimum de code et l'intégration plus simple

+0

Avez-vous terminé votre widget? est-ce que c'est disponible pour la consommation publique? – russau

Répondre

5

C'est assez lâche et incomplète -. et est vraiment destiné à être un point de départ:

if (typeof $ != 'undefined') { 
    var msg = 'This page already using jQuery v' + $.fn.jquery; 
} else { 
    var s = document.createElement('script'); 
    s.setAttribute('src', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js'); 
    document.getElementsByTagName('head')[0].appendChild(s); 
    var msg = 'This page is now jQuerified'; 
} 

puis attendez par une brève setTimeout() avant d'exécuter une fonction prêt()

+0

vous beaut .. c'est exactement ce que je cherchais – russau

+2

Nare à l'esprit que $ n'est pas seulement utilisé par jquery. – micmcg

+1

ignorer le mauvais setTimeout après avoir ajouté le script, et aller pour s.onload = s.onreadystatechange = function() {... et vérifier le 'readyState'. – vsync

Questions connexes