我已经看到一些优雅的解决方案,从iframe中获取父母文档 - 比如, this one。但是,我无法使它工作 - 我认为这不可能是由于证券问题(跨域脚本?)?从iFrame获取家长文档
我的问题是;我仍然可以从iframe中访问父母文档吗?或者最近这些年改变了吗?如果我能够访问这个;从iframe的内容中打印parent.document
或window.parent.document
的任何想法为什么我会变得不明确?
我已经看到一些优雅的解决方案,从iframe中获取父母文档 - 比如, this one。但是,我无法使它工作 - 我认为这不可能是由于证券问题(跨域脚本?)?从iFrame获取家长文档
我的问题是;我仍然可以从iframe中访问父母文档吗?或者最近这些年改变了吗?如果我能够访问这个;从iframe的内容中打印parent.document
或window.parent.document
的任何想法为什么我会变得不明确?
只要域匹配,仍然可以从帧内访问父级。
例如,看看这些小提琴:
fiddle.jshell.net
,父母主持人:fiddle.net
不匹配=失败jsfiddle.net
,父主机:jsfiddle.net
**匹配=成功* 您可以通过访问父:
window.parent
parent
top //If the parent is the top-level document
window.top
变量parent
和top
可以被覆盖(通常不是意)。使用window.parent
更安全是更安全的。或者,您可以用document.defaultView
替换window
。
Thx!域不匹配,所以这显然是一个问题。现在你说出来了,我知道我已经阅读过这段时间了。当域名不匹配时,您无法访问父母文档。因此,当框架内容位于不同的域时,我的问题无法解决。对? – stiank81
还有一些技巧仍然在不同的领域进行沟通。看看[这篇冗长的文章](http://softwareas.com/cross-domain-communication-with-iframes)。如果两个页面都在同一个域中提供,但具有不同的子域,则设置['document.domain'](https://developer.mozilla.org/en/DOM/document.domain)将有所帮助。否则,如果您是这两个网站的所有者,则可以实现['window.postMessage'](https://developer.mozilla.org/en/DOM/window.postMessage)。 –
'window.top'一般工作。 – Salman