首页 > 解决方案 > 使用 window.open 后从回调重定向到父 URL

问题描述

我正在尝试将回调 URL 重定向回调用 window.open 的父窗口。当前,回调 URL 正在从父级生成的子窗口内打开。

父窗口 => 打开子窗口进行身份验证 => 用户进行身份验证并重定向到此子窗口。如何重定向到父窗口?

这是对 window.open 的调用

newwindow = window.open(response.data.auth_url,'Etsy','height=800,width=1000');
if (window.focus) {
    newwindow.focus()
}

知道如何做到这一点吗?

标签: javascripthtmlangularjs

解决方案


如果其他人遇到此问题,这是我提出的解决方案。

在我的 angularJS 控制器文件中,我从回调 URL 中检查我需要的两条信息:

if ($state.params.oauth_token && $state.params.oauth_verifier) {

    /* This closes the child window */
    $window.close();

    var params = {
        oauth_token: $state.params.oauth_token,
        oauth_verifier: $state.params.oauth_verifier
    };


    /* process the info ... */

}   

我还轮询查看何时创建回调 URL 并重定向父窗口

win = window.open(response.data.auth_url,'Etsy','height=800,width=1000'); 

var pollTimer = window.setInterval(function() { 
    try {
        if (win.document.URL.indexOf(response.data.callback_url) != -1) {

            window.clearInterval(pollTimer);

            $state.go("etsy.connected");

         }
     } catch(e) {
           // Error Handling            
     }
}, 500);

推荐阅读