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 :

Création de fonction à la volée


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut Création de fonction à la volée
    Bonjour,

    J'ai un petit souci avec ce code qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var str = 'alert("Ma fonction teste...");';
    var fonct = function(){eval(str);}
    fonct();
    Mon souci est que ma fonction est répétée indéfiniment et à chaque exécution, le navigateur recréer une nouvelle fonction.
    J'ai remarqué ce problème avec firebug quand je voulais voire mon script...

    Y aurait-il une autre solution pour créer une fonction qui s'exécute avec les instructions dans une variable, autre que eval() ?

    Merci pour votre réponse.
    PS, je débute en JS...

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var txt = 'alert("Text")';
    var fct = new Function(txt);
    fct();
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut
    Nickel, ça fonctionne à merveille...
    J'ai encore ajouté un argument (merci google), ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var txt = 'alert(arg);';
    var fct = new Function(['arg'],txt);
    fct('Test');
    Merci beaucoup, je n'avais pas pensé à cette solution qui est très "propre"

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/03/2006, 14h52
  2. Création de classes à la volée...
    Par ouiffi dans le forum Langage
    Réponses: 8
    Dernier message: 16/12/2005, 18h01
  3. [ImageMagick] Création d'image à la volée
    Par gdawirs dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 21/11/2005, 15h53
  4. [JMenuBar] Création d'objets à la volée
    Par Rampa dans le forum Composants
    Réponses: 5
    Dernier message: 29/06/2005, 13h56
  5. [IB][IBQUERY][D7 pro] Création de Triggers à la volée.
    Par N1bus dans le forum Bases de données
    Réponses: 6
    Dernier message: 13/10/2004, 14h23

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