关闭iframe并刷新父交叉域

时间:2012-04-23 16:15:21

标签: javascript html iframe

我有一个加载在其他人页面上的iframe。当iframe关闭时,我想刷新父页面。

我目前使用类似于此处描述的哈希黑客攻击:Close iframe cross domain

这个方法虽然在IE9中存在安全问题,所以我仍然在寻找更好的解决方案或IE解决方法..

有什么想法吗?

相关:IFrame on unload refresh parent page

1 个答案:

答案 0 :(得分:8)

我认为唯一可靠的方法是在现代浏览器中使用postMessage进行跨域通信,尚未对其进行测试但是检​​查此代码部分...当然这仅在“别人的页面”以某种方式更改时才有效

所以,如果您的页面在内,请执行以下操作:

var parent = window.parent;
if (parent && parent.postMessage) {
  parent.postMessage("closed");
}

在其他人页面上:

window.onmessage = function(event) {
  if (event.data === "closed") {
    location.reload();
  }
};