我试图通过域间的ExternalInterface启用Javascript和Flash之间的通信。当它与SWF位于同一个域中时,Javascript的效果很好。但是,在一个案例中,HTML驻留在域A中,JavaScript和闪光灯都驻留在域B.我已经做了所有的以下内容:Cross Domain ExternalInterface“NPObject上的错误调用方法”
- embed标记有
allowScriptAccess="always"
(和对象有作为PARAM) - 我的SWF文件的actionscipt有
Security.allowDomain("*")
- 我的SWF还呼吁
Security.allowInsecureDomain("*")
- 两个域A与域B有一个
/crossdomain.xml
文件,它具有allow-access-from domain="*"
的SWF能够调用页面上的JavaScript,但是当我使用JavaScript来调用由ExternalInterface的曝光功能,我得到
Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.]
这是ActionScript 2的这样ExternalInterface.marshallExceptions
不可用。
您是否加载了多个swf?或者是域A上的swf(带有HTML)加载域B上的swf? – 2009-06-24 18:10:50
亚历克斯 - 好点,我没有提到这一点。来自域B的JavaScript从域B加载SWF,并且该SWF从域B加载第二个SWF。此加载似乎可行,但我无法确定,因为我无法与SWF交互。 – Josh 2009-06-24 18:14:00