2010-03-08 71 views
1

我创建了一个自定义的ActiveX控件并公开了一个名为“getDesktopWindows”的方法。然后我用下面的javascript来调用它:当activex与flash播放器在同一页面时,无法调用activex方法

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

到目前为止,一切正常。然后我将代码封装到一个javascript函数中,并使用一个flex应用程序来调用它。

//在JavaScript

功能getDesktopWindows(){ VAR插件=的document.getElementById( “为myplugin”); var wins = plugin.getDesktopWindows(); 回报胜利; }

//挠曲

变种胜= ExternalInterface.call( “getDesktopWindows”);

现在,我会收到“Microsoft JScript运行时错误:对象不支持此属性或方法”

猜测的问题是,因为呼叫从Flash Player的起源。我尝试直接在JavaScript中调用它。我又收到了同样的例外。那么可能是因为同一个网页上有两个activex?

+0

这是一个MFC的ActiveX? – 2010-03-30 21:18:13

+0

这是一个ATL控件。不过,我已经设法解决这个问题。非常感谢您检查这一点。问候 顺便说一句我已经发布这在MSDN论坛上,你也回复了:) – tactoth 2010-04-01 04:04:00

回答

0

最后我发现呼叫需要是异步的。如果一个调用已经从一个ActiveX启动并调用另一个ActiveX,它在某些浏览器中失败。解决方法是首先排队呼叫,然后再发起另一个ActiveX调用。