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

Mar*_*rcx 5 xml apache-flex air iframe html-parsing

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

这个网页上有一个iframe,iframe加载(显然)另一个页面......

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

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

文件网页

<html>
<!-- html code-->
<iframe src="http://host/framepage.html">content default</iframe>
<!-- other html code-->
</html>
Run Code Online (Sandbox Code Playgroud)

文件framepage.html

<div>test test test</div>
Run Code Online (Sandbox Code Playgroud)

我想得到这个字符串 <div>test test test</div>

请告诉我,有一种方法可以获取iframe的内容(无需重新加载)...

编辑

看看Exort的回应,使用

var iFrame:* = domWindow.document.getElementById("myIframe");
Run Code Online (Sandbox Code Playgroud)

将iframe返回给我,但内容不是我想要的...使用我上面的网页和框架页面示例,我将得到的iframe内容是

content default

代替

<div>test test test</div>

这就像第二页没有加载,但它实际上是在浏览器窗口中加载和渲染(我也尝试使用按钮,所以我可以延迟搜索iframe内容.

Exo*_*ort 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;
Run Code Online (Sandbox Code Playgroud)