我有一个iframe,我想从iframe向其父窗口发送一条消息。这就是孩子做的事情
window.location += '#do_install||something';
这就是父母做的事($ is jquery)
setTimeout('alert($("iframe#main_store_frame").attr("src"));', 5000);
我已经尝试了很多其他方法来检测位置变化,但所有这些方法都失败了。他们都向我展示了最初的iframe位置,而不是添加了“#do_install || something”的新位置。请让我知道我做错了什么。
答案 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(至少要求您的合作伙伴将代码提交到他们的网页中),您将拥有跨域通信的权限
**抱歉没有在这里打印示例,它们太长了。
希望我帮忙。