Donc j'essaye de charger un javascript à distance en utilisant $ .getScript de jquery, mais je suis perplexe sur la façon dont je peux transmettre des données au script externe. J'ai essayé de définir des variables avant l'appel, mais elles ne sont pas disponibles dans le script qui est chargé, et lorsque j'essaie de les envoyer/récupérer à l'aide de la chaîne de requête, le script distant essaie de lire la chaîne de requête du fichier de base dont il est appelé, pas lui-même. Y a-t-un autre moyen de faire ça? Ou est-il possible d'avoir un fichier javascript lu sa propre chaîne de requête plutôt que le fichier à partir duquel il est appelé (c'est chargé dans le navigateur)?
// editor ini
var editor_ini = { page: current_page, action: 'edit' };
var foo = 'bar';
// load the editor
$.getScript('assets/desktop/desklets/'+launcher.config.editor+'/execute.js', function(){});
Dans le fichier execute.js, le editor_ini
et foo
sont indisponibles, je reçois le même résultat avec:
// load the editor
$.getScript('assets/desktop/desklets/'+launcher.config.editor+'/execute.js', { page: current_page, action: 'edit', foo: 'bar' }, function(){});
parce que le script distant semble obtenir la chaîne de requête de l'original document plutôt que celui utilisé lors de l'appel du fichier.
S'il importe, je tentais d'utiliser le query object plugin pour jquery pour la lecture de la chaîne de requête.
Selon les docs pour jQuery.getScript(), « Le script est exécuté dans le contexte mondial, il peut se référer à d'autres variables et utiliser les fonctions jQuery. » @Alexi est probablement sur quelque chose. –
Ah ça explique, j'ai supposé que le script serait exécuté dans la portée qu'il s'appelle. – wyqydsyq