Question: I'm trying to get the document object of an iframe, but none of the examples I've googled seem to help. My code looks like this:

```
<html>
    <head>
        <script>
            function myFunc(){
                alert("I'm getting this far");
                var doc=document.getElementById("frame").document;
                alert("document is undefined: "+doc);
            }
        </script>
    </head>
    <body>
        <iframe src="http://www.google.com/ncr" id="frame" width="100%" height="100%" onload="myFync()"></iframe>
    </body>
</html>

```

I have tested that I am able to obtain the iframe object, but .document doesn't work, neither does .contentDocument and I think I've tested some other options too, but all of them return undefined, even examples that are supposed to have worked but they don't work for me. So I already have the iframe object, now all I want is it's document object. I have tested this on Firefox and Chrome to no avail.

Answer: 
This is the code I use:

```
var ifrm = document.getElementById('myFrame');
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
ifrm.document.open();
ifrm.document.write('Hello World!');
ifrm.document.close();

```

> 
> **contentWindow vs. contentDocument**
> 
> 
> * IE (Win) and Mozilla (1.7) will return the window object inside the
>  iframe with oIFrame.contentWindow.
> * Safari (1.2.4) doesn't understand that property, but does have
>  oIframe.contentDocument, which points to the document object inside
>  the iframe.
> * To make it even more complicated, Opera 7 uses
>  oIframe.contentDocument, but it points to the window object of the
>  iframe. Because Safari has no way to directly access the window object
>  of an iframe element via standard DOM (or does it?), our fully
>  modern-cross-browser-compatible code will only be able to access the
>  document within the iframe.
> 
> 
>
In my case, it was due to Same Origin policies. To explain it further, [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/contentDocument) states the following:

> 
> If the iframe and the iframe's parent document are Same Origin, returns a Document (that is, the active document in the inline frame's nested browsing context), else returns null.
> 
> 
>