6

背景:-「foo_posts」と呼ばれるエンティティを取得するためにajaxを使用しています。この投稿では、Facebookの共有といいねボタンを使用しています

{% for post in foo_posts %}
    <div class="foo">
        {{ post }}
        <div class="fb-like" data-send="true" data-width="450" data-href="http://foo/foo/detail/{{ foo.id }}/" data-show-faces="true"></div>
</div>

{%endfor%}現在、これらの投稿はAjaxを使用して入力されています。

問題:-Facebookのいいねと共有がによって初期化されます

$(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_GB/all.js#xfbml=1&appId=245185848840630";
              fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));

これは機能していません。この関数を呼び出して、likeとshareが適切に入力されるようにするにはどうすればよいですか?ajax成功関数で呼び出される必要があります。(現在、ページ自体でそれを呼び出しています)

PS:-成功関数で試しました。私はそれを間違っていると思います。

4

2 に答える 2

21

XFBMLタグは、デフォルトでFacebookJS-SDK初期化でのみ解析されます。

FB.XFBML.parse()ページがレンダリングされた後、ソーシャルプラグインをDOMに追加したら、メソッドを呼び出す必要があります。

すべてのドキュメントに対して呼び出すか、要素を指定してXFBML要素を検索することができます。

FB.XFBML.parse();
// OR
FB.XFBML.parse(DOM_ELEMENT_WHERE_AJAX_CONTENT_IS_PLACED);
于 2012-04-19T06:47:44.047 に答える
0

複数のFacebook共有ボタンを使用していて、複数のソーシャルメディア共有ボタンもある場合は、共有ボタンとそのjsの代わりに、ページ速度を遅くするだけの関連するすべてのjsを含めるように完全にスキップできます。リンクのみを使用して、役職、

そして、最良の方法は、ajaxを使用してhtmlをフェッチするときに何もする必要がないこのメソッドを使用することです

Facebook共有リンクの例:

https://www.facebook.com/sharer.php?u=[your-url]

以下のように使用できます。

<a href="https://www.facebook.com/sharer.php?u=[your-url]">Share on facebook</a>

また、cssを使用してこのリンクをFacebookボタンのように見せたり、Facebookの画像またはFacebookのsvgを使用したりすることもできます。

于 2020-07-31T14:52:42.350 に答える