jQuery ajax - getScript() metoden
Eksempel
Få og køør en JavaScript-fil gennem AJAX-anmodning:
$("button").click(function(){ $.getScript("demo_ajax_script.js"); });
Definition og brug
getScript() metoden indlæser og udfører en JavaScript-fil via HTTP GET-anmodning.
Grammatik
jQuery.getScript(url,success(response,status});
Parametre | Beskrivelse |
---|---|
url | Den URL-streng, der skal anmodes. |
success(response,status) |
Valgfri. Angiver en tilbagekaldelsesfunktion, der skal køres, når anmodningen lykkes. Ekstra parametre:
|
Detaljeret beskrivelse
Denne funktion er en forkortet Ajax-funktion, der er lig med:
$.ajax({ url: url, dataType: "script", success: success });
Denne tilbagekaldelsesfunktion modtager den tilbagevendende JavaScript-fil. Dette er normalt ikke så nyttigt, fordi scriptet allerede er kørt.
Indlæst script udføres i det globale miljø, så det kan referere til andre variabler og bruge jQuery-funktioner.
For eksempel indlæs en test.js-fil, der indeholder følgende kode:
$(".result").html("<p>Lorem ipsum dolor sit amet.</p>");
Ved at referere til filnavnet kan du indlæse og køre dette script:
$.getScript("ajax/test.js", function() { alert("Indlæsning udført."); });
Kommentar:Før jQuery 1.2 version kunne getScript kun kalde JavaScript-filer fra samme domæne. I version 1.2 kan du kalde JavaScript-filer fra forskellige domæner. Bemærk: Safari 2 eller tidligere versioner kan ikke udføre scripts i globalt område synkront. Hvis du tilføjer scripts via getScript, skal du tilføje en forsinkelsefunktion.
Flere eksempler
Eksempel 1
Indlæs og udfør test.js:
$.getScript("test.js");
Eksempel 2
Indlæs og udfør test.js, og vis information efter succes:
$.getScript("test.js", function(){ alert("Script indlæst og udført."); });
Eksempel 3
Indlæs jQuery officiel farveanimation plugin Binde farveændringsanimation efter succes:
HTML kode:
<button id="go">Kør</button> <div class="block"></div>
jQuery kode:
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); }); });