【发布时间】:2013-02-03 21:19:36
【问题描述】:
我正在使用 oAuth 1.0 访问第 3 方数据。
为此,我正在采取以下步骤:-
用户单击“与第 3 方同步”按钮。 (用户必须点击,因为这通常不会调用弹出窗口拦截器。)
-
当用户单击此按钮时,将执行以下代码:
$('#sync_with_thirdparty').click(function(){ var child = window.open('/oauth'); $(child).unload(function() { if (this.location != "about:blank") { alert("Child window closed"); } }); }); 现在 PHP 在新窗口中从第 3 方获取身份验证 URL,然后将用户重定向到相同的 URL。一旦用户重定向到第 3 方,上面的代码就会显示“子窗口已关闭。”。
然后用户让自己登录第三方网站(如有必要)并允许访问我们的应用程序。只要他点击允许按钮,第三方就会将用户重定向到我们网站的新页面。在此页面上,我正在调用 window.close() 方法,该方法运行良好。
但是在子窗口中的 window.close() 时,父窗口无法知道子窗口已关闭。
我该如何解决这个问题?
注意:这 3rd 不喜欢 Iframe 并刷新自身以在顶部窗口中打开。我无法控制第 3 方的内容。我们的网页是 HTML5 格式的。
【问题讨论】:
标签: javascript jquery html oauth