Facebook喜欢并分享ajax上的按钮

时间:2012-04-19 06:28:00

标签: jquery ajax facebook django-templates

背景: - 使用ajax获取一个名为“foo_posts”的实体。在这篇文章我使用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成功函数中调用它。 (现在正在页面上调用它)

P.S: - 我在成功函数中试过了。我猜错了。

2 个答案:

答案 0 :(得分:20)

默认情况下,仅在Facebook JS-SDK初始化时解析XFBML标记。

在呈现页面后,将社交插件添加到DOM后,您应该调用FB.XFBML.parse()方法。

您可以为所有文档调用它,也可以通过指定元素来搜索以下内容中的XFBML元素:

FB.XFBML.parse();
// OR
FB.XFBML.parse(DOM_ELEMENT_WHERE_AJAX_CONTENT_IS_PLACED);

答案 1 :(得分: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或svg的图像用于facebook。