我只是好奇,如果有可能Flash对象可以访问嵌入它的文档的DOM。嵌入式Flash对象可以访问其父文档的DOM吗?
回答
是的,通过ExternalInterface类。
您可以从Flash电影中调用Javascript并获取有关您的心脏所需页面的任何公共信息。
附录
展望这一年半以后在,我决定增加一些例子:
说你有你这样的客户端页面上的JS功能:
function foo(bar,type) {
// do something with bar and type
}
你可以这样称呼它(使用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
方法中,第一个参数是该函数的外部名称,第二个参数是将调用关闭。
不是我所知道的,但他们可以在包含文档中执行javascript,这显然可以访问DOM本身。
如果我在父文档中有一些AJAX调用,我可以以某种方式与Flash对象进行通信吗? – devviedev 2010-03-18 20:16:05
据我所知,这个例子只适用于AIR应用程序,不能用于普通的Web浏览器。所以其他答案,建议使用ExternalInterface,可能更适合,除非devviedev正在开发AIR应用程序。 – 2010-03-20 10:48:05
如何从dom对象获取属性?例如:'
'?我如何获得数据属性? – Sisir 2013-03-30 12:46:56