【发布时间】:2010-03-18 20:12:22
【问题描述】:
我只是好奇 Flash 对象是否有可能访问嵌入它的文档的 DOM。
【问题讨论】:
标签: javascript flash dom
我只是好奇 Flash 对象是否有可能访问嵌入它的文档的 DOM。
【问题讨论】:
标签: javascript flash dom
是的,通过 ExternalInterface 类。
您可以从 Flash 电影中调用 Javascript,并取回您想要的有关页面的任何公共信息。
附录
一年半后看到这个,我决定添加一些例子:
假设您的客户端页面上有这样的 JS 函数:
function foo(bar,type) {
// do something with bar and type
}
您可以像这样从 Flash(使用 AS3)调用它:
ExternalInterface.call(foo, bar, type);
请注意,函数名称是第一个对象,参数在其后按顺序列出。
要将 Flash 电影的方法公开给外部 Javascript,您可以在 Flash 或 Flex(同样是 AS3)中执行此操作:
application1_applicationCompleteHandler(event:Event) {
// the app has finished loading, so do whatever we
// have to do on load, plus add that callback
ExternalInterface.addCallback(foo, bar);
}
public function bar(arg1, arg2) : void {
// do something with arg1 and arg2
}
在页面上的 Javascript 中,您可以这样调用它(其中 myMovie 是 SWF 的 ID):
myMovie.foo(anArg, anotherArg);
在addCallback 方法中,第一个参数是函数的外部名称,第二个参数是要调用的闭包。
【讨论】:
<div data-url="http://google.com"></div>?如何获取数据属性?
【讨论】:
据我所知,他们可以在包含的文档中执行 javascript,然后显然可以访问 DOM 本身。
【讨论】: