关闭Facebook对话框(弹出窗口)

时间:2011-07-15 17:14:19

标签: php facebook

我正在构建一个Facebook应用程序,该应用程序在网站的标签页中作为iframe运行。

弹出窗口

我使用here中推荐的东西:

当我打开这样的弹出窗口时:

var friend_url = "http://www.facebook.com/dialog/apprequests?app_id=**appid**&display=popup&redirect_uri=**canvasurl**&message=Mesage!"
window.open(friend_url, "Friends", "height=400,width=580,modal=yes,alwaysRaised=yes"); 

然后打开一个dialpg-popup。 我现在想要的是什么如果用户点击,接受或取消对话窗口应该关闭。 我怎么能这样做?

感谢。

1 个答案:

答案 0 :(得分:2)

您提供的页面redirect_uri的值可以发出JavaScript命令self.close();,在用户选择“接受”或“取消”后,Facebook将重定向到提供的redirect_uri位置,关闭窗口。在关闭窗口之前,请确保执行任何需要处理的处理:错误处理或处理响应。一旦你做了,它就消失了!

编辑以反映以下评论:

var auth_win = window.open(friend_url, "Friends", options);

然后你需要以某种方式检测用户的操作是否完整,并发出如下内容:

auth_win.close();

如果您无法检测到操作何时完成,则会有一些断开连接。如果您的意思是redirect_uri始终是您的标签应用程序或画布URL,那么您可以将参数添加到查询字符串,即url?auth=complete或哈希后,即url#authorized。然后,一旦检测到,请关闭变量引用的窗口。