2011-07-10 5 views
3

J'essaie de comprendre le processus interne de getScript. Je suis conscient qu'il utilise la méthode $ .get de manière interne. Je pensais que jQuery plaçait une référence de balise script dans le DOM pour pouvoir exécuter ce fichier js mais je ne trouvais pas de références de scripts chargés par getScript dans le DOM.Processus interne de la méthode jQuery getScript

Alors, comment jQuery exécute-t-il des scripts chargés sans références de balises de script dans le DOM?

$.getScript('gallery.js') est exactement la même chose avec $('<script src="gallery.js">').appendTo('body')?

Répondre

5

This is the interesting part in the source code.

jQuery semble recevoir uniquement le texte et il évalue la portée mondiale:

converters: { 
    "text script": function(text) { 
     jQuery.globalEval(text); 
     return text; 
    } 
} 

Si vous chargez le script d'un autre domaine, jQuery ajoute une nouvelle balise script:

head.insertBefore(script, head.firstChild); 

mais le supprime une fois le code chargé:

// Remove the script 
if (head && script.parentNode) { 
    head.removeChild(script); 
} 
+0

Même jQuery supprime les scripts ajoutés. Essayez ceci $ ('

3

Luke, usethesource.

(noter que ces liens sont à un ancien allouent)

+0

Liens obsolètes? – ZMorek

+1

@ZMorek oui. Cette réponse date de 18 mois et jQuery a poursuivi son développement actif. J'ai mis à jour pour lier à une révision de l'époque. –

Questions connexes