2011-11-07 55 views
5

我有一個MX:在加載外部網頁到它AIR桌面應用程序的HTML組件...HTML在桌面應用程序加載頁面的iframe

該網頁中有一個iframe,在iframe裝載(顯然)另一頁...

我無法弄清楚如何讓iframe的代碼...

如果我試圖讓網頁內容,我只retrive起始頁,如:

File webpage.html

<html> 
<!-- html code--> 
<iframe src="http://host/framepage.html">content default</iframe> 
<!-- other html code--> 
</html> 

文件framepage.html

<div>test test test</div> 

我想獲得字符串<div>test test test</div>

,請告訴我,有一種方式來獲得iframe的內容(無需重新加載它)。 ..

編輯

在響應展望Exort,使用

var iFrame:* = domWindow.document.getElementById("myIframe"); 

將返回我的iframe,但內容是不是我要... 使用我的網頁和framepage上面的例子中,iframe中的內容,我會得到的是

content default

代替

<div>test test test</div>

這就像是沒有裝載第二頁,但它實際上被加載並在瀏覽器窗口中呈現(我也嘗試USI一個按鈕,這樣我就可以延遲搜索iframe內容。

+0

iframe是否與父項目完全相同的域? – Wes

+0

是的,它是在同一個域 – Marcx

+0

這個問題是有點重複的:http://stackoverflow.com/questions/785823/accessing-an-iframes-contents-in-adobe-air –

回答

1

我沒有太多時間,所以這可能不是一個非常深刻的答案,但iframe被視爲一個窗口並擁有自己的文檔。你可以用html這樣的東西來獲得它的內容。順便說一句,這是AS3,如果我使用'*'作爲對象類型的話。在這裏使用對象類型不會很好。

var domWindow:* = myHTML.htmlLoader.window; //DOM window object 

//if you don't have the id, you can get all iframes with getElementsByTagName("iframe") 
var iFrame:* = domWindow.document.getElementById("myIframe"); 

var iFrameContent:String = iframe.contentDocument.body.innerHTML; 
+0

它不會工作,除了最後兩行不給出任何結果,還得到'iframe'我無法檢索數據......我可以獲取第一頁上的iframe的「文本」。我編輯了我的帖子,以更好地澄清。 – Marcx

+0

不幸的是我無法測試它,但解決方案就在於此。嘗試在調試中檢查iframe,看看你是否無法獲得該窗口。從我的頭頂來看,它是contentWindow,但它可能是別的。我會看看我以後能否提供更多的細節,對不起! – Exort

+0

NP!我調查了至少整個上午的調試窗口,發現什麼都沒有用,所以我在這裏問了...希望有人能幫到.. – Marcx