Javascript Can';当activex与flash player位于同一页时,不要调用activex方法
我创建了一个自定义ActiveX控件,并公开了一个名为Javascript Can';当activex与flash player位于同一页时,不要调用activex方法,javascript,flash,com,atl,Javascript,Flash,Com,Atl,我创建了一个自定义ActiveX控件,并公开了一个名为getDesktopWindows的方法。然后我使用以下javascript调用它: var plugin = document.getElementById("myPlugin"); var wins = plugin.getDesktopWindows(); 到目前为止一切正常。然后我将代码包装到javascript函数中,并使用flex应用程序调用它 在Javascript中: function getDesktopWindows()
getDesktopWindows
的方法。然后我使用以下javascript调用它:
var plugin = document.getElementById("myPlugin");
var wins = plugin.getDesktopWindows();
到目前为止一切正常。然后我将代码包装到javascript函数中,并使用flex应用程序调用它
在Javascript中:
function getDesktopWindows() {
var plugin = document.getElementById("myPlugin");
var wins = plugin.getDesktopWindows();
return wins;
}
在Flex中:
var wins = ExternalInterface.call("getDesktopWindows");
现在我将收到“Microsoft JScript运行时错误:对象不支持此属性或方法”
猜测问题可能是因为呼叫来自flash player。我试着用javascript直接调用它。我再次收到同样的例外。可能是因为同一网页中存在两个activex?最后我发现调用需要异步。如果从ActiveX启动调用并调用另一个ActiveX,则在某些浏览器中会失败。解决方案是首先将调用排队,然后启动对另一个ActiveX的另一个调用。这是一个ATL控件。不过我还是设法解决了这个问题。非常感谢您的检查。顺便说一句,我已经在MSDN论坛上发布了这篇文章,你也在那里回复:)