Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction en parametre à une autre fontion.

('("");'); = > "#@!

Sujet résolu
    4 mars 2009 à 21:31:03

    Salut,
    J'ai un srcipt javascript qui affiche un lien. Le href de ce lien appel une fonction javascript qui contient en paramètre une autre fonction javascript jusque la tout va bien mais le hick, c'est que cette autre fonction contient des paramètres et donc c'est la guerre :p . Voila à quoi ça ressemble:

    <script type="text/javascript">
    var lien = "<a  href=\"javascript:fonction1('fonction2('parametre_fontion2');'); \">Supprimer</a>";
    document.write(lien);
    </script>
    

    J'aimerai savoir si il est possible d'ecrir cela sous cette forme.
    Merci !
    • Partager sur Facebook
    • Partager sur Twitter
      4 mars 2009 à 21:51:54

      Bah tu pourrais envoyer la fonction et ses paramètres, comme des paramètres distincts, dans la première fonction non ?

      ta_fonction1(fonction_2,args);
      
      • Partager sur Facebook
      • Partager sur Twitter
        5 mars 2009 à 8:06:02

        <input type="button" id="bouton"/>
        <script type="text/javascript">
        document.getElementById('bouton').onclick=fonction1(fonction2('parametre_fontion2'));
        </script>
        

        si ta fonction 2 à un return, en renvéra la valeur àla fonction 1 qui la traitera!
        • Partager sur Facebook
        • Partager sur Twitter
          5 mars 2009 à 10:23:15

          Ah gné, j'crois que j'avais pas compris le problème... ^^
          • Partager sur Facebook
          • Partager sur Twitter
            5 mars 2009 à 10:27:55

            Non je ne veut pas envoyer en paramètre le return de la fontion2, je veut envoyer la fonction que la fontion1 devra exécuter a un moment donné dans son script.
            • Partager sur Facebook
            • Partager sur Twitter
              5 mars 2009 à 10:41:18

              Mais elle devra l'exécuter avec des paramètres, c'est ça ?

              Donc j'avais raison je crois ^^

              Regarde ce petit exemple :

              <!-- Les appels avec le nom de la fonction (sans "()" !), et les deux paramètres -->
              <button type="button" onclick="function1(somme,3,5);">Texte</button>
              <button type="button" onclick="function1(produit,3,5);">Texte</button>
              
              <script type="text/javascript">
              function function1(fct,arg1,arg2) { // En paramètres, la fonction à appeler et les deux valeurs
              	// Ici le contenu de la fonction, puis l'appel de la deuxième :
              	fct(arg1,arg2);
              }
              function somme(nb1,nb2) { // Une fonction somme toute simple
              alert(nb1+nb2);
              }
              function produit(nb1,nb2) { // Une fonction produit toute simple
              alert(nb1*nb2);
              }
              </script>
              
              • Partager sur Facebook
              • Partager sur Twitter
                5 mars 2009 à 10:43:16

                Merci beaucoup je vais tester ça.
                • Partager sur Facebook
                • Partager sur Twitter
                  5 mars 2009 à 10:51:37

                  Si ça fonctionne, pense à mettre ce sujet en résolu. ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 mars 2009 à 12:22:41

                    J'ai essayé mais ça foire carrément le reste de mon script donc je vais trouver une autre solution merci quand même.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 mars 2009 à 12:33:37

                      Tout dépend du reste de ton script...

                      Si t'as besoin d'aide, n'hésite pas à poster ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 mars 2009 à 13:09:53

                        cette ligne me semble <acronym title="Heureusement que t'es là... j'ai cherché un peu vu que le correcteur orthographique gueulait et j'ai pas trouvé xD">bizarre</acronym>...
                        fct(arg1,arg2);
                        j'aurais mis:
                        window[fct](arg1,arg2);
                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 mars 2009 à 13:26:56

                          Tout dépend de comment tu appelles ta fonction
                          avec function1(somme,3,5); c'est fct(arg1,arg2);
                          avec function1('somme',3,5); c'est window[fct](arg1,arg2);

                          PS: la bonne orthographe n'est pas "bisard" mais "bizarre"
                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 mars 2009 à 20:57:11

                            Tiens, je ne savais pas qu'on pouvait utiliser "window." pour appeler une fonction depuis son nom en String. ^^ A retenir ;)

                            (Mais je suppose que c'est moins optimisé non ? (Ca ferait pas appel à eval ??? o_O ))
                            • Partager sur Facebook
                            • Partager sur Twitter
                              5 mars 2009 à 21:21:04

                              Citation : Golmote

                              Tiens, je ne savais pas qu'on pouvait utiliser "window." pour appeler une fonction depuis son nom en String. ^^ A retenir ;)

                              (Mais je suppose que c'est moins optimisé non ? (Ca ferait pas appel à eval ??? o_O ))

                              Non non, pas d'appel à eval.
                              window est l'objet global (pour un navigateur). Voir ici. ;)
                              Mais en l'occurrence, comme l'a dit restimel, pas besoin de passer par window[x] puisque le paramètre est déjà une fonction, donc ton code me paraît correct.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Fonction en parametre à une autre fontion.

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown