2011-11-07 7 views
5

Tengo un componente mx: HTML en una aplicación de AIR de escritorio que se carga una página web externa a ella ...HTML en aplicación de escritorio cargar una página con un iframe

esta página web tiene un iframe en ella y la carga iframe (obviamente) otra página ...

no puedo encontrar la manera de obtener el código del iframe ...

Si trato de obtener el contenido de páginas web sólo retrive la página de inicio como:

Página web del archivo.html

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

framepage.html Archivo

<div>test test test</div> 

me gustaría obtener la cadena <div>test test test</div>

favor me dicen que hay una manera de conseguir el contenido del iframe (sin recarga del mismo). ..

EDITAR

en cuanto a la respuesta de Exort, utilizando

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

me va a devolver el marco flotante, pero el contenido no es el que yo quiero ... Usando mi página web y el ejemplo framepage anteriormente, el contenido iframe que se obtiene es

content default

en lugar de

<div>test test test</div>

es como que la segunda página no se carga, pero en realidad se cargará y representa en la ventana del navegador (he intentado también USI ng un botón para poder retrasar la búsqueda del contenido del iframe.

+0

¿Está el iframe exactamente en el mismo dominio que el proyecto principal? – Wes

+0

sí, está en el mismo dominio – Marcx

+0

Esta pregunta es una especie de duplicado de: http://stackoverflow.com/questions/785823/accessing-an-iframes-contents-in-adobe-air –

Respuesta

1

No tengo mucho tiempo, así que esta podría no ser una respuesta realmente profunda, pero el iframe se considera en una ventana y tiene un documento propio. Puedes obtener su contenido con el html DOM con algo como esto. Esto es AS3 por cierto, evento si estoy usando '*' como tipos de objetos. Usar el tipo de objeto no funcionará muy bien aquí.

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

no funcionará, excepto el hecho de que las 2 últimas líneas no dan ningún resultado, obteniendo también el 'iframe' no pude recuperar los datos ... en su lugar puedo obtener el" texto "de iframe que hay en la primera página. Edité mi publicación para una mejor aclaración. – Marcx

+0

Desafortunadamente no puedo probarlo, pero la solución está alrededor de eso. Intente inspeccionar el iframe en depuración y vea si no puede obtener la ventana. Desde mi punto de vista, era ContentWindow, pero podría ser otra cosa. Veré si puedo proporcionarle más detalles más tarde, ¡lo siento! – Exort

+0

NP! Miré en la ventana de depuración durante al menos toda la mañana y no encontré nada útil, así que pregunté aquí ... espero que alguien pueda ayudar ... – Marcx

Cuestiones relacionadas