2009-10-22 46 views
3

以下是我的代码。出于某种原因,在用户登录到弹出窗口后,小窗口将重定向回到“/”,并在URL末尾有很多会话JSON垃圾。如何在用户连接后关闭Facebook弹出登录窗口?

我该如何制作它所以这个小窗口关闭,我的父窗口刷新?

<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> 
+0

任何人都可以帮助我吗? – TIMEX 2009-10-23 00:59:42

+0

你有没有找到解决这个问题的方法?我有同样的问题。谢谢! – ensnare 2010-04-26 07:17:41

+0

如果任何人在2011年6月遇​​到这个问题,FB最近引入了一个bug,它会在IE 7,8和9中关闭窗口。请参阅:http://bugs.developers.facebook.net/show_bug.cgi?id= 18405 – tonyhb 2011-06-17 14:33:55

回答

-7

我解决了它。这是我的设置在FAcebook的页面。

+0

我有同样的问题。你能告诉我你在设置中改变了什么以使其工作? – lisovaccaro 2011-04-29 18:40:45

+5

也许可以更详细地描述你下次如何解决问题... – Odyss3us 2011-05-24 10:21:27

0

它看起来就像你在你的代码的随机“H”。难道这是与JS功能搞乱?

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

这不是错误。,谢谢:) – TIMEX 2009-10-22 23:06:24

1

你可以这样使用onlogin属性:

onlogin="document.location.href=document.location.href;" 

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

我写了一篇关于整合社区与facebook连接的教程,你可以阅读它here

2

刷新页面

尝试将reloadIfSessionStateChanged标志FB.init。例如,

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

从Facebook的API

reloadIfSessionStateChanged

布尔 - 如果该值为true,Facebook的 将监视会话状态 更改并重新加载当前页面,如果会话状态发生变化。此选项为 便于实现, 需要重新加载页面,只要 会话状态发生变化,以便 从服务器 一侧生成不同的内容。

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

弹出窗口不关闭

我发现,您遇到的问题与你的弹出窗口不关闭,如果你的path/to/xd_receiver.html不正确,或者如果您onlogin你的连接按钮的功能是不确定的,所以一定要仔细检查。

希望有帮助!

3

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

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

希望这有助于!

+0

准确地说我的问题。谢谢! – Strawberry 2011-06-24 01:29:10

0

我的弹出窗口没有关闭(当发布到feed时),因为我没有在合适的地方使用channel.html文件。完成后,它重定向到channel.html文件(部分)关闭弹出窗口 - 所以没有在正确的地方意味着它没有关闭。