2010-03-08 4 views
1

J'ai créé un contrôle ActiveX personnalisé et j'ai exposé une méthode appelée "getDesktopWindows". Ensuite, j'utilise le javascript suivant pour l'appeler:Impossible d'appeler les méthodes activesx lorsque l'ActiveX est dans la même page que Flash Player

var plugin = document.getElementById ("myPlugin"); var wins = plugin.getDesktopWindows();

Jusqu'à présent, tout fonctionne très bien. Ensuite, j'ai enveloppé le code dans une fonction javascript et utiliser une application flexible pour l'appeler.

// javascript

getDesktopWindows fonction() {var plugin = document.getElementById ("myPlugin"); var wins = plugin.getDesktopWindows(); gagnez des gains; }

// flex

var gagne = ExternalInterface.call ("getDesktopWindows");

Maintenant, je vais recevoir « erreur d'exécution Microsoft JScript: Cet objet ne gère pas cette propriété ou méthode »

Deviner le problème serait parce que l'appel est originaire du lecteur flash. J'ai essayé de l'appeler directement en javascript. Et encore une fois j'ai reçu la même exception. Alors peut-il y avoir deux ActiveX présents dans la même page?

+0

est-ce un MFC activeX? –

+0

c'est un contrôle ATL. Cependant j'ai réussi à résoudre ceci. Merci beaucoup de vérifier cela. Cordialement BTW j'ai posté ceci sur le forum de MSDN et vous avez également répondu là :) – tactoth

Répondre

0

Finalement, j'ai trouvé que l'appel devait être asynchrone. Si un appel a été initié à partir d'un ActiveX et appelle un autre ActiveX, il échoue dans certains navigateurs. La solution consiste à d'abord mettre en file d'attente l'appel, puis initier un autre appel à l'autre ActiveX.