对于Aweber关于简报订阅的特殊目的,我有一个页面加载嵌套的IFRAME,并且都位于同一个域中。 (许多其他stackoverflow帖子谈论不同的域,但这个问题只涉及相同的域。)我需要一种跨平台的方式(包括IE6的曙光之前的浏览器),以便两者进行通信。
例如,有人填写姓名和电子邮件并单击复选框,复选框旁边的隐藏IFRAME位于setInterval()循环中,注意这一点。收到通知后,它会抓取姓名和电子邮件并填写表格。
我一开始认为我可以在父页面中删除一个cookie,然后IFRAME孩子可以坐在一个间隔中查看该cookie。但我的测试显示这不起作用。 cookie被创建 - 但IFRAME无法看到它。所以,我在IFRAME中尝试了元刷新技术,并且由于某种原因再次无法看到该cookie。
我能想到的唯一解决方案是父页面将点击复选框(我们使用jQuery)并将AJAX数据推送到服务器进入数据库。然后,IFRAME可以通过AJAX检查返回服务器的时间间隔,以查看数据库值是否已更改,如果是,则对其作出反应。但这似乎是一个过度设计的解决方案,而且我正在寻找一种更易于跨平台工作的替代方案,即使在早期的浏览器中,从IE6的时间框架开始,也是如此。
答案 0 :(得分:4)
更简单:在iframe
中,您可以访问包含父窗口的parent
变量。因此,您可以使用parent.document
查找表单,阅读值等等。