Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';当activex与flash player位于同一页时,不要调用activex方法_Javascript_Flash_Com_Atl - Fatal编程技术网

Javascript Can';当activex与flash player位于同一页时,不要调用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()

我创建了一个自定义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?

最后我发现调用需要异步。如果从ActiveX启动调用并调用另一个ActiveX,则在某些浏览器中会失败。解决方案是首先将调用排队,然后启动对另一个ActiveX的另一个调用。

这是一个ATL控件。不过我还是设法解决了这个问题。非常感谢您的检查。顺便说一句,我已经在MSDN论坛上发布了这篇文章,你也在那里回复:)