11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je cherche le moyen de récupérer des éléments relatifs à une fonction appelante d'une fonction donnée (nom, argument, référence...).

Exemple :

function a(arg){alert(arg);}
function b(){a('coucou');}

b();

Comment récupérer dans a() que a été appelée par b() ?
Bien sûr, je souhaite une solution conforme au standard. De ce fait, je ne veux pas utiliser
caller...

Par avance merci de m'avoir lu et pour les idées que vous pourriez avoir en la matière.
Bonjour,

Peut-être en déclarant argument A en variable globale ?

[code=html]<html>
<head>
<style>
p {margin:10px 0px 10px 150px ;}
</style>
<script type="text/javascript" language="JavaScript">
var argA="";

function a(arg){
argA = arg;
alert(arg);
}

function b(){
a("coucou");
document.getElementById("ici").innerHTML = document.getElementById("ici").innerHTML + '<br /> argument A : ' + argA;
}
</script>
</head>
<body>
<div id="ici"><input type="button" value="Appel ARGUMENT A" onclick="b()" /></div>
</body>
</html>
Salut,

function test(){
	for (var k = 0; k < test.arguments.length; ++k)
		alert(test.arguments[k]) ;
}
test('plop', 'autre', 2544, .2);

Modifié par jo_link_noir (18 Oct 2009 - 16:09)
Bonjour et merci pour vos réponses Smiley smile ,

Ces deux solutions sont intéressantes. Elles ne permettent cependant de récupérer que les arguments passés à une fonction. Or, je souhaite d'abord récupérer le nom de la fonction ayant appelé la fonction a .
Arrrrrrrrrrrh zut,

Moi qui espérait pouvoir avoir un truc conforme au standard et donc susceptible d'être supporté par tous les navigateurs !

Merci beaucoup pour la réponse Smiley smile