a menudo tienen que cargar otros archivos JavaScript a través de AJAX, por lo que al principio he utilizado la función estándar de jQuery proporciona para el script de carga:¿Cómo carga de forma síncrona una secuencia de comandos desde otro directorio mediante una llamada ajax?
$.getScript('script_name.js',callback_function());
Pero esto no funcionó, ya que $ .getScript es asíncrona (la API de jQuery para $ .ajax dice que 'async' se establece en true de manera predeterminada; el tema se discute en los comentarios de la API para $ .getScript: http://api.jquery.com/jQuery.getScript/). Así que escribí esta función, conforme a lo dispuesto por alguien en los comentarios de la página de la API vinculados anterior:
load:function(script,callback){
jQuery.ajax({
async:false,
type:'GET',
url:script,
data:null,
success:callback,
dataType:'script'
});
},
Esto parecía funcionar bien, así que continué, pero recientemente me di cuenta, que esto sólo funciona para las secuencias de comandos en el mismo directorio, ej. Llamar a myObj.load ('test.js') funciona bien, pero llamar a myObj.load ('test/test.js') no funciona en absoluto.
Parece que me falta algo obvio, pero no logré encontrar el problema. ¿Alguna idea?
La función de error no ayuda - textStatus se establece en 'error' y es errorThrown indefinido – Alex
@Alex: Muy extraño de hecho. Por cierto, he agregado un gran comentario fuera del tema. :-) De acuerdo con su problema real, ** funciona el mismo script ** si lo mueve para que no esté en un subpaso? Me pregunto si el sub-camino es una pista falsa, y el verdadero problema es un error de sintaxis en el script. –
Firebug ayudado, las solicitudes fallan debido a un error 403! Estoy en un servidor local que instalé en mi Ubuntu, no sé cómo resolver esto? En cuanto a la pregunta offtopic: Bueno, quiero ejecutar funciones desde el script cargado una vez que está cargado, y con $ .getScript (script_url, function_from_the_loaded_script()); no funcionó – Alex