用户连接后如何关闭Facebook弹出的登录窗口?

3
以下是我的代码。由于某种原因,用户登录弹出窗口后,小窗口将重定向回“/”并在URL末尾带有大量的会话JSON垃圾。
我该如何做才能使小窗口关闭并刷新我的父窗口?
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript"></script>

<fb:login-button v="2" onlogin='window.location("/test");' size="medium">Connect</fb:login-button>
<script type="text/javascript">FB.init("XXXXX",'/xd_receiver.htm');</script>

有人能帮我吗? - TIMEX
如果有人在2011年6月遇到这个问题,那么FB最近引入了一个bug,会阻止在IE 7、8和9中关闭窗口。请参考这里:http://bugs.developers.facebook.net/show_bug.cgi?id=18405 - tonyhb
6个回答

3

我刚刚解决了一个类似的问题,当您使用Facebook登录弹出窗口并关闭它时,页面没有刷新。

我的Facebook APP没有正确配置。只需转到Facebook中的应用程序设置,并指定正确的站点URL(在网站部分下)。如果您正在本地测试,可以将其放在http://localhost/

希望这可以帮助!


正是我的问题。谢谢! - Strawberry

2

页面重新加载

尝试为 FB.init 设置 reloadIfSessionStateChanged 标志。例如,

FB.init(  "myAPIkey", 
          "path/to/xd_receiver.htm",
          {"reloadIfSessionStateChanged": true}
       );

来自Facebook API

reloadIfSessionStateChanged

bool - 如果值为true,则Facebook将监视会话状态的更改,如果会话状态更改,则重新加载当前页面。该选项方便实现需要在服务器端生成不同内容时根据会话状态更改重新加载页面的情况。

欲了解更多信息,请查看http://developers.facebook.com/docs/?u=facebook.jslib.FB.Facebook.init

弹出窗口不关闭

我发现如果您的path/to/xd_receiver.html不正确,或者连接按钮的onlogin函数未定义,则您可能会遇到无法关闭弹出窗口的问题,请务必仔细检查。

希望这能有所帮助!


1
您可以这样使用onlogin属性:
onlogin="document.location.href=document.location.href;"

这将由打开者执行(刷新页面)。
如果您删除onlogin属性,弹出窗口也会关闭,但下面的页面不会刷新。

我写了一篇关于如何将社区与Facebook Connect集成的教程,您可以在这里阅读。


0

看起来你的代码里有一个随机的 'h'。这可能会影响JS的功能吗?

FB.init("XXXXX",'/xd_receiver.htm'h);
                                  ^

0

我的弹出窗口没有关闭(当发布到Feed时),因为我没有将channel.html文件放在正确的位置。在发布后,它会重定向到channel.html文件,以便(部分)关闭弹出窗口 - 因此如果没有将其放在正确的位置,则无法关闭。


-8

我解决了。这是与我的Facebook页面设置有关。


我也遇到了同样的问题。你能告诉我你在设置中改了什么以使它工作吗? - lisovaccaro
6
下次请多描述一些你是如何解决问题的,让人更易理解。请注意不要改变原意。 - Odyss3us

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接