0

我正在显示页面中的弹出窗口。弹出窗口有一个页面,然后重定向到另一个页面(LinkedIn 授权一个,要清楚),然后,在成功登录后,再次打开初始授权页面。我想在弹出窗口关闭时重新加载父页面,但不能这样做。代码如下:

function OpenAuthorizePopUp() {
    var w = window.open("AuthorizePage.aspx", "PopUp", "width=450,height=540");
    w.onunload = function () {
        SubmitPage();
    };

    return false;
}
function SubmitPage() {
    alert("SUBMIT!");
}

这里的问题是 SubmitPage() 函数不是在窗口关闭时调用,而是在弹出窗口显示后调用。我猜这是因为弹出窗口内的重定向,并且当我们从第一页移动时会引发卸载。

在这种情况下,有没有办法捕捉窗口关闭的实际时刻?

4

2 回答 2

0

所以弹出的流程是这样的:

1. Your page -> 2. LinkedIn Page -> 3. Your Page

您能否更改 LinkedIn 将您发送回 (3.) 的 URL?如果是这样,请让 LinkedIn 将您发送回包含该页面的页面window.onunload = window.parent.SubmitPage;

如果你不能——也就是说,LinkedIn 总是把你送回第一页——做第三页测试是否成功连接到 LinkedIn,如果它存在,执行window.onunload = window.parent.SubmitPage;

对您的想法的一个可能的改进是只调用“成功”页面window.parent.SubmitPage();,然后window.close();因为您不再需要弹出窗口。

于 2012-10-12T08:07:16.450 回答
0

找到了解决方案。而不是使用 window.parent 访问父窗口,而是写

opener.location.reload(true);

它有效。

于 2012-10-12T09:51:18.350 回答