2011-09-19 69 views
0

我有我的網站上的ajax驅動的新聞部分。我正在嘗試實現Facebook Like按鈕的xfbml版本,並遇到了一些問題。Facebook的xfbml像按鈕無法正常工作

第一次點擊新聞項目上的「Like」時,沒有任何og標籤被拉入,所以您只能看到一個評論框。勉強,如果我然後查看另一個新聞項目並返回到第一個新聞項目,類似的按鈕工作正常,所有og數據被正確拉動。這似乎是某種緩存問題?

我也遇到了一個問題,在點擊之後,浮動彈出框消失,然後纔有機會輸入評論。它在那裏幾分之一秒。如果我不喜歡新聞並喜歡它,浮動彈出框最終會保持放置狀態,但可能需要嘗試幾次。

這裏是頭

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en-GB" lang="en-GB"> 
<head> 
<meta property="og:title" content="She's in fashion"/> 
<meta property="og:type" content="article"/> 
<meta property="og:url" content="http://www.kirkleescollege.ac.uk/news/1103"/> 
<meta property="og:image" content="http://www.kirkleescollege.ac.uk/photo/news/1103/full"/> 
<meta property="og:site_name" content="Kirklees College"/> 
<meta property="og:description" content="This year Rebekah Crowther will take the first steps towards her dream career in fashion retail thanks to a new course at Kirklees College."/> 
<title>Kirklees College News - She's in fashion</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 

的樣本,這是人體的代碼,目前的測試服務器,而不是活的服務器上。

<div id="fb-root"></div> 
<script> 
$(document).ajaxComplete(function(){ 
    try{ 
     FB.XFBML.parse(); 
    }catch(ex){ 
    }}); 

(function(d){ 
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js#appId=APPID&xfbml=1"; 
    d.getElementsByTagName('head')[0].appendChild(js); 
}(document)); 



</script> 

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js#appId=APPID&xfbml=1"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

<div class="fb-like" data-href="http://www.kirkleescollege.ac.uk/news/<?php echo $id; ?>" data-send="true" data-layout="button_count" data-width="450" data-show-faces="false"></div> 

的東西coulpe提關於上述代碼,現場代碼我的應用程序ID設置,但我不知道這是否是讓我在這裏已經刪除了敏感信息。我假設這兩個應用程序ID應該是相同的?
FB.XFBML.parse()代碼來自Stackoverflow。它允許類似的按鈕加載在ajax驅動的頁面上。
我不明白的是爲什麼它是間歇性的。你會認爲如果錯誤的東西仍然是一致的。

希望有人能幫助,因爲這是推動我瘋了!

+0

它也值得一提,所有有關問題,純粹是我的網站上結束。當點擊「發佈到Facebook」時,即使彈出窗口中沒有出現og內容,它通常會顯示在我的Facebook頁面上。 – iltdev

回答

2

你必須添加的appid代碼

檢查線路

js.src =「//connect.facebook.net/en_US/all.js#appId=APPID & xfbml = 1「;

,而不是APPID你HV粘貼你自己的appid