桌面应用程序中的HTML加载带有iframe的页面

时间:2011-11-07 11:05:17

标签: xml flex iframe air html-parsing

我在AIR桌面应用程序中有一个mx:html组件,用于将外部网页加载到其中......

此网页中包含iframe,iframe加载(显然)另一页...

我无法弄清楚如何获取iframe的代码......

如果我尝试获取网页内容,我只会检索起始页面,如:

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返回给我,但内容不是我想要的... 使用我上面的网页和框架页面示例,我将获得的iframe内容是

  

content default

而不是

  

<div>test test test</div>

就像第二页未加载一样,但它实际上是在浏览器窗口中加载和渲染的(我也尝试使用按钮,因此我可以延迟搜索iframe内容。

1 个答案:

答案 0 :(得分:1)

我没有太多时间,所以这可能不是一个非常深刻的答案,但iframe在一个窗口中被考虑并且有一个自己的文档。您可以使用类似这样的html DOM获取它的内容。顺便说一句,这是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;