跨域iframe通信:无法读取子进程的src

时间:2011-06-07 15:21:17

标签: javascript jquery iframe cross-domain

我有一个iframe,我想从iframe向其父窗口发送一条消息。这就是孩子做的事情

window.location += '#do_install||something';

这就是父母做的事($ is jquery)

setTimeout('alert($("iframe#main_store_frame").attr("src"));', 5000);

我已经尝试了很多其他方法来检测位置变化,但所有这些方法都失败了。他们都向我展示了最初的iframe位置,而不是添加了“#do_install || something”的新位置。请让我知道我做错了什么。

1 个答案:

答案 0 :(得分:1)

您可以选择这样做:

1使用window.name(在iframe中)和iframe.contentWindow.name(在父级中)。 这个想法实际上是改变你的iframe名称(来自你的iframe)

IFRAME: window.name = "new value"

并使用父窗口中的iframe.contentWindow.name(而“iframe”是您的iframe对象)

PARENT:  console.log(iframe.contentWindow.name)

您可以阅读more information

的以下文章

2使用HTML 5 window.postMessage。您可以找到一个例外here

这个想法是能够在按域使用访问列表的同时在父窗口和iframe之间设置连接。 如果您使用的是jQuery,可以使用jQuery exmaple

另一个项目是xAuth“是一个开放平台,用于在网络上扩展经过身份验证的用户服务。”

总结

如果您能够控制父级和iframe(至少要求您的合作伙伴将代码提交到他们的网页中),您将拥有跨域通信的权限

**抱歉没有在这里打印示例,它们太长了。

希望我帮忙。