2009-08-04 13 views
5

Po prostu chcę nauczyć się czytać zawartość iframe w zdarzeniu onLoad onFoad i zapisywać jego zawartość na stronie głównej? Dzięki ..Czytanie elementu iframe w elemencie iframe Załaduj

+0

Istnieje sposób, aby to zrobić, ale jest to klugey i wymaga, aby element iframe generował/generował kontrolę nad stroną. Czy kontrolujesz zawartość treści iframe? –

Odpowiedz

6

Walczyłem z tym samym w ten ostatni dzień. Wygląda na to, że masz dostęp do elementu iframe. Jeśli użyjesz document.getElementById(), otrzymasz obiekt Iframe, który nie ma zdarzenia onload. Jednakże, jeśli masz dostęp poprzez window.frames[] tablicy, na przykład

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

masz obiekt okna, które ma onload wydarzenie.

(tj używa atrybutu rama id, ale FF używa atrybutu nazwy. Tak więc korzystać zarówno i zrobić to samo)

Następnie można przypisać

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

wypowiedzenia, ponieważ iframeWindow to okno obiekt, do uzyskania dostępu do zawartości używa się składni okna.

+0

Zrobiłem to, ale to nie zadziałało. Czy mógłbyś wysłać mi swój przykład, jeśli nie masz nic przeciwko. Dzięki. – Tarik

+1

funkcja redisplay() { var content = top.frames ['fetch']. Document.body.innerHTML; top.frames ['display']. Document.body.innerHTML = treść; }

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

Dzięki, ale tak naprawdę głównym problemem jest to, jak określić załadowanie strony, aby uzyskać zawartość i napisać zawartość strony głównej. – Tarik

+0

content " ... ..." lub " ..."? –

+0

Należy pamiętać, że znacznik jQuery nie został określony. – dotTutorials

0
  • dokument nadrzędny (strona, na której wyświetlana jest iframe)
  • dokument dziecko (strona wyświetlana wewnątrz iframe)

Jeśli te dwa dokumenty są w w tej samej domenie można użyć obiektu window.parent.document w module obsługi zdarzenia onload dokumentu podrzędnego, aby uzyskać dostęp do dokumentu nadrzędnego.

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

Można użyć tej funkcji jquery na stronie nadrzędnej i obsługuje również wiele innych funkcji, aby dodawać i usuwać spożywczych:

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

W powyższym kodzie: #idofElement to element strony HTML w iframe, którego wartość, którą chcesz ustawić. Mam nadzieję, że to pomoże ..

+1

Dobra odpowiedź. Nie wiedziałem, że jQuery ma taką funkcję 'contents()' i wygląda na bardzo użyteczną, szczególnie w przypadku iFrame. – Tarik

Powiązane problemy