1

相关问题:没有刷新的 OAuth (Instagram)

情况

Instagram 需要一个完整的重定向来进行身份验证,然后他们会重定向回来。我希望它与弹出窗口一起工作。

可能的解决方案

在弹出窗口中打开页面:

var authWindow = window.open(instagramUrl, 'authWindow');

然后我将 instagram 重定向到一个自行关闭的页面:

<script>window.close()</script>

问题

我不知道如何找出窗口何时关闭。以下两者都不起作用:

authWindow.onbeforeunload = function() {
   window.opener.console.log('Closing popup!');
};

function logClose(cnsl) { cnsl.log('Closing popup!'); }
var callback = _.bind(logClose, window, console);
$(authWindow.document).click(callback);

非常欢迎替代建议!

4

1 回答 1

6

<script>window.close()</script>您可以在父窗口中调用一个函数,window.opener然后关闭窗口,而不是直接使用:

家长:

function onInstagramAuth()
{
  // Handle however you would like here
  console.log('authenticated');
}

孩子:

try { window.opener.onInstagramAuth(); } catch (err) {}
window.close();
于 2013-07-19T18:31:22.243 回答