我只是好奇,如果有可能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