2009-08-04 23 views
5

Voglio solo imparare a leggere il contenuto Iframe nell'evento onLoad di iframe e scriverne il contenuto nella pagina principale? Thanks ..Lettura del contenuto Iframe in Iframe Carico

+0

C'è un modo per farlo, ma è klugey e richiede che l'iframe sia il rendering di una pagina su cui hai il controllo. Il contenuto di rendering dell'iframe è controllato? –

risposta

6

Ho lottato con lo stesso il giorno passato. Sembra che importi come accedi all'iframe. Se si utilizza document.getElementById() si ottiene un oggetto Iframe, che non ha evento onload. Tuttavia, se si accede attraverso window.frames[] array, per esempio

var iframeWindow = top.frames['iframeID'], 

si ottiene un oggetto di finestra, che ha evento onload.

(cioè utilizza l'attributo cornice id, ma ff usa attributo name. Quindi utilizzare entrambi e fare la stessa cosa)

È quindi possibile assegnare

iframeWindow.onload=function(){iframeContent=iframeWindow.document.body.innerHTML;}; 

Avviso, dal momento che iframeWindow è una finestra oggetto, si usa la sintassi della finestra per accedere al contenuto.

+0

L'ho fatto ma non ha funzionato per me. Potresti mandarmi il tuo esempio, se non ti dispiace. Grazie. – Tarik

+1

1
jQuery("#xiframe").load(function() 
{ 
    var doc = null; 
    try{ 
    doc = this.document || this.contentDocument || this.contentWindow && xiframe.contentWindow.document || null; 
    } catch(err) { 
    alert('error: ' + err.description); 
    } 

    try {    
    if(!doc) { 
    alert('error'); 
    return false; 
    } 
    } catch(err) { 
    alert('error: ' + err.description); 
    return false; 
    } 

    alert(String(jQuery(doc.body).html()); 
} 
+0

Grazie, ma in realtà il problema principale è come determinare il completamento del caricamento della pagina per ottenere il contenuto e scrivere nel contenuto della pagina principale. – Tarik

+0

contenuto " ... ..." o " ..."? –

+0

Ricorda che il tag jQuery non è stato specificato. – dotTutorials

0
  • documento principale (la pagina in cui viene visualizzata l'iframe)
  • documento secondario (la pagina visualizzata all'interno del iframe)

Se questi due documenti sono in stesso dominio, è possibile utilizzare l'oggetto window.parent.document nel gestore di eventi onload del documento figlio per accedere al documento principale.

1
document.getElementById('iframeID').contentWindow.onload = function(){ 
    top.document.innerHTML = this.document.innerHTML; 
} 
10

È possibile utilizzare questa funzione jQuery nella pagina superiore e supporta anche molte altre funzioni per aggiungere e rimuovere gli animali:

<script type="text/javascript"> 
     function myFunction() { 
     var $currIFrame = $('#Frame1'); 
     $currIFrame.contents().find("body #idofElement").val('Value i want to set'); 
      } 
</script> 

Nel codice di cui sopra: #idofElement è l'elemento da pagina HTML in iframe cui valore che si desidera impostare. Spero che ti sia d'aiuto ..

+1

Bella risposta. Non sapevo che jQuery avesse una funzione 'contents()' e sembra davvero utile specialmente con iFrame. – Tarik

Problemi correlati