2011-07-15 90 views
1

我正在構建一個Facebook應用程序,該應用程序作爲iframe在網站的標籤中運行。關閉Facebook對話框(彈出)

的彈出窗口我使用推薦的東西從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,彈出打開。 我現在想要的。如果用戶點擊,接受或取消對話窗口應該關閉。 我該怎麼做?

謝謝。

回答

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。然後一旦檢測到,關閉變量引用的窗口。

+0

重定向網址是Facebook頁面...那裏我不能添加此代碼... – helle

+0

然後,你將不得不從開場: –

+0

如何檢測用戶推動什麼? – helle