2011-09-19 16 views
0

私のサイトには、ajax駆動のニュースセクションがあります。私はFacebook Likeボタンのxfbmlバージョンを実装しようとしていて、いくつかの問題にぶつかってきました。Facebook xfbml Likeボタンが正しく動作しない

初めてニュースアイテムの「好き」をクリックすると、ogタグが1つも取り込まれないので、コメントボックスのみが表示されます。 奇妙なことに、別のニュースアイテムを表示して最初のニュースアイテムに戻ると、同様のボタンが正しく機能し、すべてのデータが正しく引き出されます。それはキャッシュの問題のようないくつかのようだ?

私はまた、コメントを入力する前に、likeをクリックした後に表示されるフローティングポップアップボックスに問題がありました。そこには数分の1秒あります。私がニュースアイテムと違って信頼していれば、浮動ポップアップボックスは最終的には入れられますが、いくつかの試みが必要です。ここで

はヘッダ

<!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

関連する問題