5

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

我目前采用类似于此处描述的哈希技巧:关闭 iframe 跨域

这种方法虽然在 IE9 中存在安全问题,但我仍在寻找更好的解决方案或 IE 解决方法。

有任何想法吗?

相关:卸载刷新父页面上的 IFrame

4

1 回答 1

8

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

所以如果你的页面在里面:

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

在其他人页面上:

window.onmessage = function(event) {
  if (event.data === "closed") {
    location.reload();
  }
};
于 2012-04-23T16:58:03.180 回答