Tarik
Tarik

Reputation: 81721

Reading Iframe Content in Iframe Load

I just wanna learn how to read Iframe content in onLoad event of iframe and write it's content to the main page ? Thanks..

Upvotes: 7

Views: 23818

Answers (5)

user111108
user111108

Reputation:

I have struggled with same this past day. It seems to matter how you access the iframe. If you use document.getElementById() you get an Iframe object, which has no onload event. However, if you access through window.frames[] array, for example

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

you get a window object, which does have onload event.

(ie uses the frame id attribute , but ff uses name attribute. So use both and make the same)

You can then assign

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

Notice, since iframeWindow is a window object, you use window syntax to access content.

Upvotes: 8

andres descalzo
andres descalzo

Reputation: 14967

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());
}

Upvotes: 2

RohitWagh
RohitWagh

Reputation: 2097

You can use this jquery function in parent page and it also supports many other function to add and remove stuffs:

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

In above code: #idofElement is the element from HTML page in iframe whose value you want to set. I Hope it helps You..

Upvotes: 11

Henry
Henry

Reputation: 1459

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

Upvotes: 1

lance
lance

Reputation: 16342

  • parent document (the page on which the iframe is displayed)
  • child document (the page displayed inside the iframe)

If these two documents are in the same domain, you can use the window.parent.document object in the child document's onload event handler to access the parent document.

Upvotes: 0

Related Questions