我正在尝试将回调URL重定向回调用window.open的父窗口。当前,回调URL正在从父窗口派生的子窗口内打开。
父窗口=>打开子窗口进行身份验证=>用户进行身份验证并重定向到该子窗口。如何重定向到父窗口?
这是对window.open的调用
newwindow = window.open(response.data.auth_url,'Etsy','height=800,width=1000');
if (window.focus) {
newwindow.focus()
}
有什么想法要实现吗?
答案 0 :(得分:0)
要在Windows之间进行通信,请使用Postmessage
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
您的情况可能是子窗口将消息发送到父窗口,然后该消息又关闭了子窗口并重定向到最终URL。
答案 1 :(得分:0)
如果有人遇到此问题,这是我想出的解决方案。
在我的angularJS控制器文件中,我从回调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);
我也进行轮询以查看何时创建回调URL并重定向父窗口
var chrt = !this.chart ? this : this.chart;