2012-03-19 14 views
0

私は生成されたajaxコンテンツと共にFacebookのコメントボックスを表示しようとしています。すべてのコードを単純な例にして、どこかで何かが不足しているところを切り捨てます。AJAXコールの後に表示されるFacebookのコメントボックス

ダウン私の主な例のページhttp://www.gerdalouw.com/ajax/ajax.html(ドロップダウンから実行するテストアヤックスを選択)

ドロップが自動的これは自分自身で正常に動作しますが、FBのコメントボックスにはしたくないhttp://www.gerdalouw.com/ajax/ax.html < <に描きますAjax呼び出しを介して生成します。

私はFB.XFBML.parse()を使用しようとしました。私はそれを間違った場所に置いているか、何か他のものを紛失していますか?私はどこかに何かが非常に明白なものを見逃していると思いますか?

私はここに私の問題の多くの可能な解決を行ってきましたが、ちょうど働いたものを見つけることができませんでした。誰でも助けてくれますか?

+1

「FB.XFBML.parse();」が表示されません。 ajax.htmlまたはax.htmlのいずれかにあります。また、FB.initは表示されません。理想的には、AJAXコンテンツをページにレンダリングした後でFB.XFBML.parseを実行すると、問題なく動作します。私たちは多くのアプリで使ってきました。 – Shreeni

+0

ありがとうShreeni、私は正直なところ、どこに置くべきかわかりません(ax.htmlページ内に配置する必要があると思ったところでは動作したくないので)。あなたや他の人が、このAjax呼び出し(Trigger page + Called page)を一緒にスティッチする方法の簡単な例はないでしょうか? – Herman

答えて

3

私はこのブログ記事を参考にすることができます。 http://dominicminicoopers.blogspot.com/2012/03/assigning-url-for-facebook-comments.html

これを行うには、少し異なるコードがあります。 FBオブジェクトが完全に初期化されると、callAjaxが発生する必要があることに注意してください。 FBを正しくロードして初期化したことを確認するために、window.fbAsyncInit関数の内部に配置しました。

<div id="fb-root"></div> 

<div id="myCommentsDiv"></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#xfbml=1&appId=YOUR_APP_ID"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId : 'YOUR_APP_ID', // App ID 
     channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html' // Channel File 
    }); 

    callAjax(); 
    }; 

    function callAjax(yourData) { 
     $.ajax({ 
     url: "YOUR_AJAX_URL", 
     data: yourData, 
     success: function(){ 
      var mydiv = $('#myCommentsDiv'); 
      mydiv.html('<div class="fb-comments" href="' + document.location.href + '" posts="2" width="470">'); 
      FB.XFBML.parse(mydiv[0]); 
     } 
     }); 

    } 

    }; 
</script> 
+0

ありがとう、この答えは私を助ける! –

0

コール」FB.XFBML.parse()」を明示的これはあなたのために働くものとFacebookのコメント欄

//facebook comments 
    var isFacebook = $data.find('.fb-comments'); 
    if(isFacebook != 'undefined') { 
     var scriptText = 'FB.XFBML.parse();'; 
     var scriptNode = document.createElement('script'); 
     scriptNode.appendChild(document.createTextNode(scriptText)); 
     contentNode.appendChild(scriptNode);     
    } 
5

をHTMLを再解析し、レンダリングするAJAXの成功機能、内部:

$( 'body')。ajaxComplete(function(){FB.XFBML.parse(document.body)});

これは、すべてのajax呼び出しでFB.XFBML.parseを呼び出します。だからどこでも呼び出しを繰り返す必要はありません。

関連する問題