Méthode getScript() de jQuery ajax
Exemple
Obtenir et exécuter un fichier JavaScript via une requête AJAX :
$("button").click(function(){ $.getScript("demo_ajax_script.js"); });
Définition et utilisation
La méthode getScript() charge et exécute un fichier JavaScript via une requête HTTP GET.
Syntaxe
jQuery.getScript(url,success(response,status});
Paramètres | Description |
---|---|
url | Chaîne d'URL à demander. |
success(response,status) |
Optionnel. Définit la fonction de rappel à exécuter après la réussite de la requête. Paramètres supplémentaires :
|
Explication détaillée
Cette fonction est une version abrégée de la fonction Ajax, équivalente à :
$.ajax({ url: url, dataType: "script", success: success });
La fonction de rappel ici reçoit le fichier JavaScript retourné. Cela n'est généralement pas très utile, car le script est déjà exécuté à ce moment-là.
Les scripts chargés s'exécutent dans l'environnement global, donc ils peuvent utiliser d'autres variables et utiliser les fonctions jQuery.
Par exemple, charger un fichier test.js contenant le code suivant :
$(".result").html("<p>Lorem ipsum dolor sit amet.</p>");
En référençant ce nom de fichier, vous pouvez charger et exécuter ce script :
$.getScript("ajax/test.js", function() { alert("Le chargement a été effectué."); });
Remarque :Avant la version 1.2 de jQuery, getScript ne pouvait appeler que des fichiers JS du même domaine. Dans la version 1.2, vous pouvez appeler des fichiers JavaScript de domaines différents. Note : Safari 2 ou versions antérieures ne peuvent pas exécuter des scripts en mode global en synchroné. Si vous ajoutez un script via getScript, ajoutez une fonction de délai.
Plus d'exemples
Exemple 1
Charger et exécuter test.js :
$.getScript("test.js");
Exemple 2
Charger et exécuter test.js, puis afficher un message :
$.getScript("test.js", function() { alert("Script chargé et exécuté."); });
Exemple 3
Charger Extension officielle d'animation de couleur jQuery Animation de changement de couleur après succès :
Code HTML :
<button id="go">Exécuter</button> <div class="block"></div>
Code jQuery :
jQuery.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function() { $("#go").click(function() { $(".block").animate({ backgroundColor: 'pink' }, 1000) .animate({ backgroundColor: 'blue' }, 1000); }); });