Rechercher : dans
Par :

Javascript: Lancer fonction variable

Dernière réponse le 15 avr 2009 à 11:41:02 pazz, le 15 avr 2009 à 10:20:15 
 Signaler ce message aux modérateurs

Bonjour,

je cherche à lancer une fonction selon la valeur d'une variable.

exemple javascript:

function ActiveF(Fonction){
  Fonction();
  }
function Border(){
  alert('ok');
  }


Html
<div onclick="ActiveF('Border')"></div>


je sais que sa ne marche pas ainsi mais est-ce possible d'une autre manière ?

merci

Pazz
Configuration: Windows XP

Meilleures réponses pour « Javascript: Lancer fonction variable » dans :
Javascript - Les fonctions Voir La notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...

1

NookZ, le 15 avr 2009 à 10:25:34

Bonjour,

Je pense que ce qu'il vous faut c'est la fonction eval();
http://www.toutjavascript.com/reference/reference.php?iref=2­12

Répondre à NookZ

2

benvii, le 15 avr 2009 à 10:34:02

Le plus simple c'est de faire :

function activer_fct()
{
   if(var_=="ma valeur"){ fct();}
}
function fct()
{ TA FONCTION }


S'active quand var_ (qui est une variable global accessible dans tout le script) à la valeur "ma valeur". Benvii

Répondre à benvii

3

pazz, le 15 avr 2009 à 10:40:43

Ce que tu propose est très interressant en effet par contre je n'arrive pas à lancer la fonction voulue
je m'explique:

je voudrait lancer la fonction qui porte la valeur de ma variable par exemple si ma variable vaut "effet", je voudrait que la fonction effet ce lance.

je sais que je pourrais faire cela à l'aide de condition "if" mais c'est pas très ergonomique je voudrais simplement faire quelque chose comme sa:

var test='effet';

function Lancefonction(){
test();    /*lancerai donc effet*/
}


merci

Pazz

Répondre à pazz

4

pazz, le 15 avr 2009 à 10:42:43

Merci Benvil mais justement cela ne me convient pas c'est trop lourd surtout si il faut tester plus de 100 fonction

mais c'est vrais que sa fonctionne

Répondre à pazz

5

NookZ, le 15 avr 2009 à 10:57:52

Avez-vous regardé ma proposition?

Répondre à NookZ

6

benvii, le 15 avr 2009 à 11:01:12

Alors fait avec eval() :
var fct_="alert('EXE')";

function lancer_fct()
{
  eval(fct_);
}


Regarde le post de NooKZ pour plus d'info -> http://www.commentcamarche.net/forum/affich 12007660 javascript lancer fonction variable?#1 Benvii

Répondre à benvii

7

pazz, le 15 avr 2009 à 11:17:38

Oui NooKz c'est ta proposition qui m'intéresse et merci a toi benvil sa semble aller dans le bon sens par contre je n'arrive toujours pas a faire se que je veut je me ré explique, je voudrait que la valeur de "fct_" me lance une fonction.

exemple

var fct_='Border";

function lanceFct(){
eval(fct_(););
}

function Border(){
alert('ok');
}

pazz

Répondre à pazz

8

NookZ, le 15 avr 2009 à 11:20:28

De mémoire c'est eval("fct_"); ou eval(fct_); je sais plus lequel

Répondre à NookZ

9

pazz, le 15 avr 2009 à 11:24:31

Voici l'ébauche de mon script, vous comprendrez peut être mieux


function filtre(Effet){
	var Fil= new ActiveFiltre(Effet);
}

function ActiveFiltre(Effet){
	this.Effet=Effet;
	if(typeof(this.Effet)=='undefined'){
		alert("erreur: la fonction n'existe pas");
		}
	else{
		chaine='Effet();';
        eval(chaine);
		}
}

function Border(){
	alert('ok');
}


je lance donc filtre avec la valeur "Border"

Répondre à pazz

10

NookZ, le 15 avr 2009 à 11:37:32

Comme dit au-dessus c'est eval("Effet"); sans les parenthèses qui normalement définissent une fonction

Répondre à NookZ

11

 pazz, le 15 avr 2009 à 11:41:02

Oui génial c'est exactement sa j'avais mal lu. Merci infiniment NooKz

Pazz

Répondre à pazz