2012-12-25 18 views
2

重新渲染Facebook插件有沒有辦法使用FB.XFBML.parse,而不會再次渲染Facebook插件,導致它「閃爍」(消失並重新出現)。使用FB.XFBML.parse

將使用Facebook Like按鈕或Facebook推薦欄。

活生生的例子:http://www.gablabelle.com/eve-d

滑動來查看在右下角的閃爍。

$.address.state(ajax_object.path).crawlable(true).value(whereiam); 
$(".fb-recommendations-bar").data("href",whereiamurl); 
//$(".fb-like").data("href",whereiamurl); 
fburl = $(".fb-recommendations-bar").data("href"); 
//fburl = $(".fb-like").data("href"); 
console.log(fburl); 
FB.XFBML.parse(); 

非常感謝您的幫助。

回答

1

您可以通過將父DOM元素傳遞到FB.XFBML.parse來限制重新解析的範圍。

+0

是的,但它仍然呈現Facebook插件。 – Gab

+1

您要求的內容沒有意義 - 那麼如何在不實際重新加載的情況下再次加載插件(新數據)? –

+0

問題是關於是否有方法重新加載其數據,而不重新渲染導致它「閃爍」的插件(因爲它消失並重新出現)。 – Gab

1

當需要「換頁」時,在Facebook插件div的頂部添加一個opacticy圖層。動畫效果完全不透明。調用FB.XFBML.parse()並給它一些時間來重新渲染。將圖層動畫化爲非透明,然後從Facebook插件div上方移除不透明層(或將其留在下一次您需要做「換頁」而不實際重新加載頁面)。

這項技術會給你一個優雅的消失/重新出現的插件,而不是刺耳苛刻的「忽悠」。

0

緩存Facebook的喜歡一張幻燈片的 + 當前幻燈片 + 幻燈片上的變化事件下一張幻燈片 。所以,當你去到下一個或上一個,它的Facebook應該已經準備好/加載時,用戶不應該看到閃爍,除非他/她與幻燈片一起快速進行。

+0

http://stackoverflow.com/questions/8777907/many-facebook-like-buttons-on-one-page-with-different-thumbnails - 這個問題/答案可能與你有關...... – erichste

0

我最近有這個。

我通過將XFMBL包裹在一個變量中來解決它......不知道爲什麼,但沒有它,它似乎閃爍......一種方法來停止閃爍,但爲我工作的一個徹底的破解!

 if(call == 0){ 
      FB.XFBML.parse(); 
      call = 1; 
    } 
0

DMCS提供了什麼似乎是唯一的半正確的答案,但它的屁股很醜。你不知道每個人的網絡瀏覽器需要多長時間來呈現這些東西。據說它的渲染回調也不起作用。此外,在Firefox中看不到閃爍,但只在谷歌瀏覽器。