Bonjour à tous,
J'ai une page dans laquelle j'appelle des scripts js, ils sont bien présents dans le source. Puis loin dans la page je veux exécuter une fonction de l'un des scripts mais une erreur est retournée qui dit que la fonction n'est pas définie alors qu'elle est bien présente dans le script d'ailleurs on peut la voir via le source.
Si j'inclue le contenu du script directement dans ma page, ça fonctionne, mais les scripts étant assez long j'aimerais dans la mesure du possible ne pas à avoir à inclure tout le contenu de tous les scripts dans la page.
Je vais quand même expliquer le contexte, il est possible que ça vienne de là. Donc je tente de faire fonctionner une partie de mon api.
Il s'agit d'une page twig (symfony2) interprétée coté serveur, sérialisée en json via fosrestbundle, appellée par un script php qui ajoute des trucs dans le header et des paramètres dans la requète puis qui récupère le contenu json, lui même appelé par le client en ajax/jsonp pour afficher le contenu dynamiquement et car jsonp gère le crossdomain et car ça marche très bien avec d'autres pages.
d'ailleurs ce qu'il se passe au départ, j'appelle une première page qui contient l'appel à jquery, il fonctionne, donc je ne comprends pas pourquoi certain script passe et pas d'autres. Ensuite je remplace le contenu d'une div par le contenu d'une autre page qui est celle contenant le nouveau script par le procédé expliqué au dessus.
voilà un petit bout de code concernant l'appel :
Je n'ai pas mis le contenu des scripts car l'erreur concerne l'appel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 //appel du script js dans twig <script src="{{ app.request.getSchemeAndHttpHost() ~ asset('bundles/general/js/recording.js') }}" type="text/javascript"></script> //dans le source <script src="http://monsite.dev/bundles/general/js/recording.js" type="text/javascript"></script> //dans le fichier function Recording(settings) { ... } //dans le meme fichier que l'appel du script, l'appel de la fonction //$(doment).ready(function(){ //ceci ne change rien Recording({ env: '{{ app.environment }}', ... }); //}); //l'erreur retournée Uncaught ReferenceError: Recording is not defined
J'ai l'impression que la fonction est exécutée avant que le fichier ne soit inclu, ce qui est assez louche étant donné que, dites moi si je me trompe, normalement le js est synchrone.
Savez vous à quoi cela est du ? comment résoudre le problème ?
merci les génies
Partager