在我的父窗口,我有:
if (window.addEventListener){
addEventListener("message", listener, false);
} else {
attachEvent("onmessage", listener);
}
在弹出窗口中,我输入:
<script type="text/javascript">
window.opener.postMessage("complete", "*");
window.close();
</script>
这适用于所有浏览器,除了…是的,你猜对了。IE-11 !
有没有人遇到过类似的问题,可以帮助我修复现有的代码或给出一个替代的解决方案?我已经努力在谷歌上搜索过了!
几个月前,我在开发一个专为这种事情设计的框架时遇到了类似的问题。实际上,我放弃了,而是让我的父窗口向我的子窗口发送一条消息(就在它被创建之后),该消息包含事件源作为消息的一部分(这实际上是对父窗口的引用)。然后,我通过对该对象执行postMessage来回复窗口。