从另一台服务器的嵌入式 swf 调用 externalinterface.call 在 Firefox 中不起作用
我在服务器A上有一个index.html。
在index.html中我嵌入了来自服务器B的swf。swf
包含一个init flash.external.ExternalInterface.call("alert", "externalalert");
当我在服务器 B 上运行 swf 时,它可以工作,当我通过服务器 AI 上的 index.html 运行 swf 时,会得到:安全沙箱违规:ExternalInterface 调用者...
它在 IE 中工作。
有谁知道我做错了什么。
谢谢!
I have an index.html on server A.
In index.html I embed a swf from server B.
The swf contains a init with
flash.external.ExternalInterface.call("alert", "externalalert");
When I run the swf on server B it works, when I run the swf through the index.html on server A I get an : Security sandbox violation: ExternalInterface caller...
It does work in IE.
Does anybody know what I'm doing wrong.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
修复方法是添加
您的 AS 代码。
ExternalInterface
要求在执行 HTML-SWF 跨脚本时设置allowDomain
。请注意,您还需要在 swf 嵌入标记中设置
allowScriptAccess="always"
以允许跨脚本。The fix is to add
in your AS code.
ExternalInterface
requires theallowDomain
to be set when HTML-SWF cross-scripting is performed.Note that you will also need to set
allowScriptAccess="always"
in the swf embed tags to allow cross-scripting.你没有做错什么。 这是Flash播放器的限制。 不同域之间的交互是不允许的。 您可以尝试使用
crossdomain.xml
。 (但我不知道这是否适用于ExternalInterfaces
)。更多信息可以在这里找到:
You are doing nothing wrong. This is a restriction of the Flash player. Interacting between different domains is not allowed. You could try to use a
crossdomain.xml
. (But I do not know if this works youExternalInterfaces
).More Information can be found here: