J'ai un objet ActiveX (maître) et je voudrais y appeler dynamiquement des fonctions. Pour ce faire, j'utilise la fonction apply(). Mais malheureusement Internet Explorer me dit quelque chose du genre: "Cet objet ne supporte pas cette méthode". Quelqu'un peut-il me donner un indice de ce que je pourrais faire?JavaScript: Problème avec un objet ActiveX et la fonction apply()
(Pour tester cela, vous pourriez également utiliser un petit objet flash en tant que maître et appeler « doSomething » au lieu de ma spécifique « Initialiser ».)
function invoke(object, fnName, args)
{
return object[fnName].apply(object, args);
}
function test_it()
{
try{
Master = window.document["Master"];
}
catch(e){alert(e);}
var param = [1,"VC2"];
var ret = invoke(Master, "Initialize", param);
alert("got: "+ret);
}
Pour comparsion, c'est la fonction apply() dans Action:
function Obj()
{
this.msg = function(a, b, c)
{
alert("msg: \n a: "+a+"\n b: "+b+"\n c: "+c);
return "hi";
}
return this;
}
function invoke(object, fnName, args)
{
return object[fnName].apply(object, args);
}
function test_it()
{
var obj = new Obj();
var ret = invoke(obj, "msg", [1, 2, 3]);
alert("got: "+ret);
}
Très bien. Heureusement, ça m'a aidé :) – kangax
@hobotron Je pense que si vous l'essayez avec ma modification de la réponse de Kangax, ça devrait marcher! –