Getting parents document from iFrame

2019-01-15 09:21发布

问题:

I have seen some elegant solutions on fetching the parents document from iframe - like e.g. this one. However, I can't make it work - and I didn't think this was possible due to securities issues (cross domain scripting?)?

My question is; can I still access the parents document from inside an iframe - or has this changed the recent years? If I should be able to access this; any thoughts on why I get undefined when printing parent.document or window.parent.document from the content of the iframe?

回答1:

It's still possible to access the parent from within a frame provided that the domains match.

For example, have a look at these fiddles:

  • Frame host: fiddle.jshell.net, parent host: fiddle.net Does not match = failure
    Test #1: http://jsfiddle.net/nrRQg/1/
  • Frame host: jsfiddle.net, parent host: jsfiddle.net **Matches = success*
    Test #2: http://jsfiddle.net/nrRQg/1/show/

You can access the parent through:

window.parent
parent
top          //If the parent is the top-level document
window.top

The variables parent and top can be overwritten (usually not intended). It's safer to use window.parent to be more safe. Alternatively, you can replace window by document.defaultView.