使用ajax渲染Facebook社交插件

时间:2011-12-08 18:14:47

标签: ajax facebook facebook-social-plugins

我在<body>标记下面加了JavaScript API代码(下面)。

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

我还为喜欢和评论框添加了相应的标记。

社交插件在直接从浏览器加载时呈现得很好,但在使用ajax加载的页面上却没有。

我需要做些什么来确保社交插件在通过ajax加载的页面中呈现?

1 个答案:

答案 0 :(得分:5)

Facebook在页面加载后搜索fbml标签,这就是社交插件在加载时呈现的原因。如果你在加载后添加新的,你必须告诉Facebook再次渲染FBML。你可以轻松地调用FB.XFBML.parse(),或者包含一个DOM元素引用,让Facebook扫描/渲染只是页面的一部分。

https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/