2012-07-18 269 views
2

我使用FB JavaScript API創建Like按鈕。該按鈕會出現在圖像的收藏夾視圖基於lightbox2(http://lokeshdhakar.com/projects/lightbox2/) 我一次創建一個div與收藏的「構建」一個id如何重新初始化Facebook

.append($('<div/>', { 
      "id": 'fb-image-like', "data-send" : 'false', "data-layout" : 'button_count', "data-width" : '250', "data-show-faces" : 'true', "data-colorscheme" : 'dark', "data-font":'arial' 
     })) 

- 事件。在「updateDetails」(顯示下一張圖片)上,我設置了data-href-attribute,附加了「fb-like」類並啓動了window.fbAsyncInit();

$('.fb-like').removeClass("fb-like"); 
     //FB._initialized = false; 
     $("#fb-image-like").attr("data-href", url).addClass("fb-like"); 
     window.fbAsyncInit(); 

Facebook創建類似按鈕的iframe,並且一切正常。在下一張圖片中,生成的代碼看起來不錯(替換爲data-href),但Like-Button顯示爲已經喜歡,因爲like.php中的URL不會更改。 window.fbAsyncInit();不會重新初始化會話。如果我現在不喜歡,最後的圖片將不受歡迎。我能做什麼,完全重新啓動Facebook會話?

+0

它看起來像Facebook比較當前location.href與其數據庫,而不是數據href屬性的內容。但在我的ImageGallery中,URL總是相同的。所以所有的圖像都喜歡或不喜歡。 – 2012-07-18 08:27:45

回答

3

window.fbAsyncInit();不重新初始化會話。

當然沒有,因爲這不是它的目的在所有

再次調用FB.XFBML.parse(可能帶有一個作用域參數),讓它重新解析你喜歡的按鈕標記。

+0

現在我添加了一個並每次切換圖像時更新它的href屬性。但它總是一樣的。設置哪個網址並不重要。 Facebook只需要第一個: $('#fbLikeButton')。attr('href',url); //設置新的URL \t \t alert(「Update button with:」+ $('#fbLikeButton')。attr('href')); \t \t FB.XFBML.parse(); //網址是新的,但按鈕看起來和像以前一樣工作。 – 2012-07-18 12:12:49

+0

嘗試從文檔中完全刪除舊按鈕,然後再添加新文檔並解析它。 – CBroe 2012-07-18 12:17:25

+0

它的工作原理!非常感謝。 – 2012-07-18 12:49:03