从弹出窗口重新加载子域上的父窗口

时间:2012-01-11 02:46:52

标签: javascript javascript-events popup cross-domain

如何在这种情况下重新加载父页面:

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";

这没有效果,我仍然收到错误

Unsafe JavaScript attempt to access frame with URL 
http://sub.abc.com/ from frame with URL http://abc.com. Domains, protocols and 
ports must match.

我是否必须使用一些可怕的轮询功能来检查targetWin.closed == true

1 个答案:

答案 0 :(得分:0)

这个问题已经持续了两个星期,我得出的结论是,没有民意调查就无法做到这一点。

问题中所述的原因是父母是弹出窗口的子域。