捕获弹出窗口关闭为oauth与instagram

时间:2013-07-19 17:18:44

标签: javascript instagram

相关问题:OAuth (Instagram) without refresh

情况

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

替代建议非常欢迎!

1 个答案:

答案 0 :(得分: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();