2009-08-04 45 views
5

Sadece iframe'deki onLoad olayında Iframe içeriğinin nasıl okunacağını öğrenmek ve içeriğini ana sayfaya yazmak ister misiniz? Teşekkür ..Iframe Yüklemede Iframe İçeriği Okuma

+0

Bunu yapmanın bir yolu var, ama bu klugey ve iframe oluşturduğunuz/kontrol ettiğiniz bir sayfanın oluşturulmasını gerektiriyor. Iframe kontrol ettiğiniz içeriği oluşturuyor mu? –

cevap

6

Geçtiğimiz gün aynı şekilde mücadele ettim. Iframe nasıl eriştiğiniz önemli gibi görünüyor. document.getElementById() kullanırsanız, onload etkinliğine sahip bir Iframe nesnesi alırsınız. Ancak, onload olayı var bir pencere nesnesi alır örnek

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

için, window.frames[] dizi aracılığıyla erişmek eğer.

(yani çerçeve kimlik özelliğini kullanır, fakat ff adı özelliği kullanılıyor. Yani hem kullanabilir ve aynı olun) iframeWindow bir pencere olduğu için, sonra

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

Bildirimi atayabilirsiniz

Nesne, içeriğe erişmek için pencere sözdizimini kullanırsınız.

+0

Yaptım ama benim için çalışmadı. Eğer sakıncası yoksa, bana örneklerini gönderebilir misin? Teşekkürler. – 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

Teşekkürler ama aslında asıl sorun, içeriği almak ve ana sayfa içeriğine yazmak için sayfa yükleme işlemlerinin nasıl tamamlanacağını belirlemektir. – Tarik

+0

içerik " ... ..." veya " ..."? –

+0

jQuery etiketinin belirtilmemiş olduğunu unutmayın. – dotTutorials

0
  • ana belge (iframe görüntülendiği sayfa)
  • çocuk belge bu iki belge vardır

ise (iframe içerisinde görüntülenen sayfa) Aynı etki alanında, ana belgeye erişmek için alt belgenin onload olay işleyicisindeki window.parent.document nesnesini kullanabilirsiniz.

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

Sen üst sayfasında bu jQuery işlevini kullanabilir ve aynı zamanda maddeleri eklemek ve kaldırmak için diğer birçok fonksiyonu destekler: Yukarıdaki kodda

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

: #idofElement iframe'de kimin HTML sayfasından unsurdur ayarlamak istediğiniz değer. Umarım yardımcı olur ..

+1

Güzel yanıt. JQuery'nin 'content()' işlevine sahip olduğunu ve özellikle iFrames ile gerçekten kullanışlı olduğunu biliyordum. – Tarik