Il metodo AJAX $.getScript() di jQuery ci consente di caricare script JavaScript e di eseguirli nel contesto globale. Tuttavia, questo metodo non restituisce errori qualora lo script da includere contenga errori sintattici, quindi per il debugging è necessario ricorrere all'evento ajaxError
. Vediamo i dettagli.
Vogliamo caricare il seguente script:
var Library = {
create: function(options) {
options = {
element: '<p/>',
content: 'Test',
target: 'body'
};
$(options.element).
text(options.content).
appendTo(options.target);
},
init: function() {
this.create();
}
};
Quando lo script è stato caricato, vogliamo eseguire il metodo init()
dell'oggetto Library
. Prima però dobbiamo intercettare i possibili errori che potrebbero verificarsi:
$('#log').ajaxError(function(e, jqxhr, settings, exception) {
$(this).text(e + ' ' + jqxhr + ' ' + exception);
});
Ovviamente potete più semplicemente inviare questi dati alla console JavaScript. Quindi possiamo usare $.getScript()
:
$.getScript('jquery-get-script-test.js', function() {
Library.init();
});
Come si può notare, il metodo invocato viene eseguito come se l'oggetto a cui appartiene fosse già presente nella pagina. Potete visionare l'esempio finale in questa pagina.