2012-05-24 43 views
1

我有一個飼料職位JS如下。Facebook分享對話框後,飼料崗後不關閉

var feedObj = { 
    method: 'feed', 
    link: link, 
    picture: imagelink, 
    name: name, 
    caption: caption, 
    description: description, 
    redirect_uri: "http://"+(window.location.host)+"/", 
    next:null, 
    app_id: appid, 
    actions: [ 
     { name: text, link: link } 
    ] 
}; 

function callback(response) { 
    if(response){ 
    } 
} 
facebook.ui(feedObj, callback); 

如何確保點擊帖子的Feed對話框自動關閉?
我注意到,回調並不總是解僱,這在下面的嘗試並不總是

function callback(response) { 
    if(response){ 
     facebook.Dialog.remove(facebook.Dialog._active); 
    } 
} 
+0

控制檯上的任何錯誤?所有瀏覽器都有相同的行爲?另外,爲什麼你自己把'redirect_uri','next'和'app_id'的值? SDK將爲您照顧。 –

回答

4

工作按照documentation,接下來是不是一個參數。

我明白,與redirect_uri回調沒有被調用。 由於redirect_uri被大多數sdks支持,所以您無需使用它。

DEMO

希望這有助於

+2

刪除redirect_uri的竅門 –

+0

現在需要redirect_uri。 –

7

我有一個簡單的技巧,以關閉此對話框。做這種工作並不是一種好方法,但它對我來說工作得很好。首先,您必須在您的服務器上創建一個頁面(例如closewindow.aspx),然後將此代碼粘貼到頁面的正文部分。

<script src="js/jquery.js" type="text/javascript"></script> 
<script> 
    $().ready(function() { window.close(); }); 
</script> 

不是設置redirect_uri參數屬性此頁,如:

redirect_uri=http://www.yousitename.com/closewindow.aspx 

現在這個時候在對話框中,該頁面將被稱爲的redirectUrl,對話框會自動在頁面加載時被關閉。

我知道這可能會很棘手,但你知道這個工作的感覺如何。

+3

可能不是官方的方式(不知道是什麼),但非常聰明。 – fuzzyvagina

+1

太棒了!一個小問題,但只是爲了確保更好的用戶體驗,您可能希望使用setTimeout來延遲window.close(),並在關閉窗口之前向用戶顯示一些消息,說明他們的發佈是成功的。另外,你可能想用這個JS代碼片斷關閉窗口 - http://stackoverflow.com/a/12896858/123545 – ErJab

+1

包括jQuery太方便了,簡單的''就夠了 –