你要说的第一件事是:
iframe 是否托管在与父网站相同的 http 主机上?如果没有,您将遇到 javascripts 同源保护,请访问:http ://en.wikipedia.org/wiki/Same_origin_policy
简而言之:您将无法访问内容。可是等等!有一个解决方法,我将在处理第二种情况后解释,其中 http 主机是相同的!
所以让我们谈谈第二种情况。那么工作很简单...
您只需要访问 iframe(可能给 iframe 标签一个 id “示例”)。然后您可以使用 example.contentWindow.document 或 example.contentDocument 访问该窗口
无论设置哪一个,都取决于浏览器。您将不得不在 js 中进行一些检查。就像是
if(document.getElementById('contentWindow.document').contentWindow) {
ifdoc = document.getElementById('contentWindow.document').contentWindow.document
} else {
ifdoc = document.getElementById('contentWindow.document').contentDocument
}
然后您可以像在 javascript 中一样访问表单和元素,我不会在这里介绍...
所以让我们跳到这个答案的有趣部分!让我们围绕同一个起源策略工作。这也称为“跨站点脚本”(继续谷歌......)
所以基本上它归结为一件事:
子文档和父文档都可以访问一个属性!
它是 document.location 属性!
所以,你可以做什么?
子站点可以对其进行修改,然后父站点可以对其进行监视并对更改做出反应。
另一个不错的功能是 url 片段(# 之后的部分)。这部分不会重新加载网站,因此 javascript 可以愉快地修改它,并且父站点可以定期轮询它并对其做出反应......
基本上,这为可以处理的父子文档的通信提供了基础。有设计精美的图书馆!javscript版本的“用facebook登录”也是基于同样的原理!
这意味着子文档必须与父文档合作,因此这是有意的,并且双方基本上在工作中一起工作。
所以这没关系,他们可以围绕相同的原产地政策工作。
希望这在理论上涵盖了您的问题,并为您在实践中提供了一些帮助!
祝你有美好的一天:)