2

我已經添加了Facebook的按鈕,但它只能在頁面上一次。該頁面由「瓷磚」組成,每個瓷磚都有自己的鏈接,用戶應該能夠「喜歡」頁面上的任何瓷磚。被調用的函數的代碼如下:Facebook的按鈕只加載一次

FB.Event.subscribe('edge.create', handleResponse(response)); 

var handleResponse = function(response) { 
    var query = FB.Data.query('SELECT like_count FROM link_stat WHERE url="some_url_goes_here"'); 
    query.wait(function(rows) { 
     alert('number of likes ' + rows[0].like_count); 
     // ... other code 
    }); 
}; 

當用戶按下某些鍵 - 與如按鈕一起出現的Facebook「喜歡」按鈕(EI稱爲函數startFacebook(),其內容在上方給出)一些其他社交網絡。

前段時間這個函數的內容開始:

FB.Event.clear('edge.create'); 

但現在已被廢棄,Facebook表示,這是不應該使用更多的和發送響應這樣的:

c jssdk_error 
m {"error":"Private method used","extra":{"args":"Event.clear"},"appId":"246731078776510"} 

當我使用FB.Event.clear - 一切正常。有誰知道如何取代這個缺乏的功能?

感謝您的幫助!

回答

1

您是否嘗試刪除事件偵聽器?
如果是這樣,那麼使用FB.Event.unsubscribe就像你使用FB.Event.subscribe

var handleResponse = function(response) { 
    ... 
} 

FB.Event.subscribe("edge.create", handleResponse); 

... 

FB.Event.unsubscribe("edge.create", handleResponse); 
+0

只是退訂並沒有解決他的問題。我認爲我需要以某種方式「清除」與FB相關的所有內容,以便FB看起來像剛剛初始化。有沒有其他方法可以做到這一點,而不是使用FB.Event.clear? – kovpack 2012-07-06 09:40:43

+0

你想要做什麼?你爲什麼要「清除」一切? – 2012-07-06 10:02:51

+0

我嘗試了在每個函數中初始化FB幾次,並且它在某種程度上起作用,但是在控制檯中,我得到消息「FB.init已經被調用 - 這可能表明存在問題」。 – kovpack 2012-07-06 10:02:57