ho spesso bisogno di caricare altri file JavaScript tramite la tecnologia AJAX, quindi all'inizio ho usato la funzione standard jQuery prevede lo script di carico:Come si carica in modo sincrono uno script da un'altra directory tramite una chiamata ajax?
$.getScript('script_name.js',callback_function());
Ma questo non ha funzionato, dal momento che $ .getScript è asincrona (l'API jQuery per $ .ajax dice che 'async' è impostato su true per impostazione predefinita; l'argomento è discusso nei commenti dell'API per $ .getScript: http://api.jquery.com/jQuery.getScript/. Così ho scritto questa funzione, come previsto da qualcuno nei commenti della pagina API legate sopra:
load:function(script,callback){
jQuery.ajax({
async:false,
type:'GET',
url:script,
data:null,
success:callback,
dataType:'script'
});
},
Questo sembrava funzionare bene, così sono andato via, ma di recente ho notato, che questo funziona solo per gli script in la stessa directory, ad es. chiamare myObj.load ('test.js') funziona bene, ma chiamare myObj.load ('test/test.js') non funziona affatto.
Sembra che manchi qualcosa di ovvio, ma non sono riuscito a trovare il problema. Qualche idea?
La funzione di errore non ha aiutato - textStatus è impostato su 'errore' e errorThrown è non definito. – Alex
@Alex: davvero molto strano. A proposito, ho aggiunto un enorme commento off-topic. :-) Re il tuo problema attuale, ** lo stesso script ** funziona se lo sposti in modo che non sia su un sottotracciato? Mi chiedo se il sottotracciato sia un'aringa rossa e il vero problema è un errore di sintassi nello script. –
Firebug ha aiutato comunque, le richieste falliscono a causa di un errore 403! Sono su un server locale che ho installato su Ubuntu, non so come risolverlo? Per quanto riguarda la domanda fuori programma: beh, voglio eseguire le funzioni dallo script caricato una volta caricato, e con $ .getScript (script_url, function_from_the_loaded_script()); non ha funzionato – Alex