使用ajax渲染Facebook社交插件

pta*_*mzz 2 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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

Bre*_*ley 6

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

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