在这种情况下,我如何重新加载父页面:
Parent domain: sub.abc.com
Popup domain: abc.com
从弹出窗口中使用window.opener.location.reload();
仅在域相等时有效(当弹出窗口是父域的子域时也应如此)。
我已尝试在父级中的onunload
事件上重新加载:
var targetWin = window.open(...
targetWin.onunload = function(){
window.location.reload();
};
这触发得太早,可能是因为弹出窗口重定向。
我还试图在父级中显式设置域,如下所示:
document.domain = "abc.com";
这没有效果,我仍然得到错误
不安全的JavaScript尝试访问具有URL的帧http://sub.example.com/来自URL为http的框架://example.com.域、协议和端口必须匹配。
我是否必须求助于一些可怕的轮询功能来检查targetWin.closed == true
?
这个问题已经提出了两周,我得出的结论是,如果不进行民意调查,就无法做到这一点。
正如问题中所述,原因是父域是弹出窗口的子域。