2011-11-07 12 views
5

Ho un mx: componente HTML in un'applicazione AIR desktop che caricare una pagina web esterna in esso ...HTML in un'applicazione desktop caricare una pagina con un iframe

il sito ha un iframe in esso e il carico iframe (ovviamente) un'altra pagina ...

io non riesco a capire come ottenere il codice della iframe ...

Se cerco di ottenere il contenuto della pagina web ho solo retrive la pagina iniziale come:

Pagina web file.html

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

framepage.html File

<div>test test test</div> 

mi piacerebbe ottenere la stringa <div>test test test</div>

favore, mi dicono che c'è un modo per ottenere il contenuto del iframe (senza ricaricare esso). ..

EDIT

Guardando la risposta di Exort, utilizzando

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

mi tornerà l'iframe, ma il contenuto non è quello che voglio ... Usando la mia pagina web e con l'esempio framepage sopra, il contenuto iframe mi metterò è

content default

invece di

<div>test test test</div>

'come la seconda pagina non viene caricata, ma in realtà essere caricato e reso nella finestra del browser (ho provato anche usi ng un pulsante in modo da poter ritardare la ricerca del contenuto iframe.

+0

L'iframe ha lo stesso dominio del progetto padre? – Wes

+0

sì è nello stesso dominio – Marcx

+0

Questa domanda è una specie di duplicato di: http://stackoverflow.com/questions/785823/accessing-an-iframes-contents-in-adobe-air –

risposta

1

Non ho molto tempo quindi questa potrebbe non essere una risposta molto profonda, ma l'iframe è considerato in una finestra e ha un proprio documento. È possibile ottenere il contenuto con il DOM HTML con qualcosa di simile. Questo è AS3 a proposito, evento se sto usando '*' come tipi di oggetto. L'utilizzo del tipo di oggetto non funzionerà molto bene qui.

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

non funzionerà, tranne il fatto che le ultime 2 righe non danno alcun risultato, anche ottenendo l'iframe non sono riuscito a recuperare i dati ... invece posso ottenere il "testo" di iframe che c'è sulla prima pagina. Ho modificato il mio post per chiarire meglio. – Marcx

+0

Purtroppo non riesco a testarlo, ma la soluzione è intorno a quello. Prova a controllare l'iframe nel debug e vedi se non riesci a ottenere la finestra. Dall'alto della mia mente era contentWindow ma poteva essere qualcos'altro. Vedrò se posso fornirti ulteriori dettagli in seguito, scusa! – Exort

+0

NP! Ho esaminato la finestra di debug almeno per l'intera mattinata e non ho trovato nulla di utile, quindi ho chiesto qui .. spero che qualcuno possa aiutarti .. – Marcx

Problemi correlati