Javascript: Lancer fonction variable

Résolu
pazz -  
 pazz -
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

9 réponses

NookZ Messages postés 2376 Statut Membre 514
 
Bonjour,

Je pense que ce qu'il vous faut c'est la fonction eval();
https://www.toutjavascript.com/reference/ref-eval.php
0
benvii Messages postés 311 Statut Membre 137
 
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".
0
pazz
 
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
0
pazz
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NookZ Messages postés 2376 Statut Membre 514
 
Avez-vous regardé ma proposition?
0
benvii Messages postés 311 Statut Membre 137
 
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
0
pazz
 
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
0
NookZ Messages postés 2376 Statut Membre 514
 
De mémoire c'est eval("fct_"); ou eval(fct_); je sais plus lequel
0
pazz
 
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"
0
NookZ Messages postés 2376 Statut Membre 514
 
Comme dit au-dessus c'est eval("Effet"); sans les parenthèses qui normalement définissent une fonction
0
pazz
 
Oui génial c'est exactement sa j'avais mal lu. Merci infiniment NooKz

Pazz
0