Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between contentDocument and contentWindow javascript iframe/frame access properties

  • What is the difference between these two properties (contentDocument and contentWindow)?
  • Is there any difference in the way they acces the content in the frame/iframe?
  • Is there any performance issues?
  • Should I use contentXXXXX.document.getElementsBy... or contentXXXXX.getElementsBy...?

I've been searching around in the web but haven't found too much information and before I did a big research I thought I could ask the great community here at stackoverflow. As a comment I'm doing a script that counts inputs on a web page, accessing all levels of frames or iframes and adding those inputs found inside the frames/iframes to the global count. All content is supposed to be from the same domain so no there should be no problems with same-origin-policy, I believe. For the script I'm using pure JavaScript no jQuery or any frameworks/libraries that make life easier u_u jaja. This is a practice script and if anyone would like a look at the code I'll post it, no problem. Thanks for anyone who takes the time to explain this!

like image 796
Samuel Lopez Avatar asked Jun 19 '13 16:06

Samuel Lopez


People also ask

What is contentWindow in iframe?

The contentWindow property returns the Window object generated by an iframe element (through the window object, you can access the document object and then any one of the document's elements).

How do you access the Windows object of an iframe?

If you want to do stuff to the iframe 's, use iframe || iframe. contentWindow to access its window , and iframe. contentDocument || iframe.


1 Answers

I think the <iframe> MDN documentation explains it well:

From the DOM iframe element, scripts can get access to the window object of the included HTML page via the contentWindow property. The contentDocument property refers to the document element inside the iframe (this is equivalent to contentWindow.document), but is not supported by Internet Explorer versions before IE8.

So you would use contentWindow the same way you use window and contentDocument as you use document.

like image 111
Felix Kling Avatar answered Oct 13 '22 05:10

Felix Kling