2009-10-22 110 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文件(部分)關閉彈出窗口 - 所以沒有在正確的地方意味着它沒有關閉。