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内容.
我没有太多时间,所以这可能不是一个真正深入的答案,但 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)