IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Appel de script


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 20
    Points
    20
    Par défaut Appel de script
    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 :
    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
    Je n'ai pas mis le contenu des scripts car l'erreur concerne l'appel.
    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

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Bon finalement j'ai trouvé un truc, alors j'ajoute ceci devant l'appel de la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $.getScript("{{ app.request.getSchemeAndHttpHost() ~ asset('bundles/general/js/recording.js') }}", function(){
        Recording({
            env: '{{ app.environment }}',
        });
    });
    Alors si j'ai bien compris ce qui se passe c'est qu'il semblerait que quand je 'append' le html le js est exécuté et les lignes d'appels aux scripts qui sont du html sont juste ajouté au dom mais les scripts ne sont pas appelés, ce qui expliquerait le problème et la solution est donc de les charger en ajax. Derrière la fonction getScript il y a de l'ajax.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/03/2006, 12h53
  2. [Newbie] Problème d'appel de script perl
    Par NoCoZ dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/02/2006, 17h43
  3. debutant= appel de script dans html
    Par sadkill dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2006, 13h17
  4. [Sqlplus ] Appel depuis script KSH
    Par kasiop dans le forum Oracle
    Réponses: 2
    Dernier message: 27/01/2006, 10h25
  5. Réponses: 6
    Dernier message: 23/05/2005, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo