当Activex与Flash Player处于同一页面时,无法调用activex方法

问题描述 投票:1回答:1

我创建了一个自定义的ActiveX控件,并公开了一种称为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吗?

javascript flash com atl
1个回答
0
投票

最后我发现呼叫需要异步。如果已从ActiveX发起呼叫并呼叫到另一个ActiveX,则在某些浏览器中该呼叫将失败。解决方案是先将呼叫排队,然后再发起对另一个ActiveX的另一个呼叫。

© www.soinside.com 2019 - 2024. All rights reserved.