HTML в настольном приложении загружает страницу с помощью iframe - PullRequest
5 голосов
/ 07 ноября 2011

У меня есть компонент mx: html в приложении AIR для настольных компьютеров, который загружает в него внешнюю веб-страницу ...

эта веб-страница содержит в себе iframe, а iframe загружает (очевидно) другую страницу ...

Я не могу понять, как получить код iframe ...

Если я пытаюсь получить содержимое веб-страницы, я получаю только начальную страницу, например:

Файл 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 Ответ

1 голос
/ 07 ноября 2011

У меня не так много времени, поэтому это может быть не очень глубокий ответ, но 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;
...