页面加载后,我正在发出AJAX请求以拉下一个HTML块,该HTML块包含表示Facebook用户个人资料图片的标签。我将结果附加到DOM中的某个点,但徽标不会加载,而是我看到的只是默认轮廓。

这就是我用jQuery加载HTML块的简单方法

$.ajax({
  url: "/facebookprofiles"
  success: function(result) {
    $('#profiles').append(result);
  }
});

我要附加的HTML是这样的差异列表:
<div class="status Accepted">
  <fb:profile-pic class="image" facebook-logo="true" linked="true" size="square" uid="1796055648"></fb:profile-pic>
  <p>
    <strong>Corona Kingsly</strong>My Status Update<br/>
    <span style="font-size: 0.8em">52 minutes ago</span>
  </p>
</div>

有任何想法吗?我假设dom加载后就不会处理fb标签。有什么办法可以做到这一点?我的Firebug控制台没有看到任何异常或错误。

谢谢

最佳答案

第一次尝试

不确定这是否有很大帮助,但是这是有关Ajax + FBML的文章:
http://wiki.developers.facebook.com/index.php/FBJS#Creating_FBML_Elements

特别是,也许您可​​以使用setInnerFBML()方法

跟进

因此,我认为init函数可以解析f​​bml。因此,一个显而易见的问题是,如果在init之后插入fbml,如何获取Facebook的javascript库来重新解析fbml(或者只是解析新的fbml)。

看来此线程可能会有所帮助:
http://forum.developers.facebook.com/viewtopic.php?id=22245

尽管论坛上有更多上下文,但这似乎是相关的代码:

if ( FB.XFBML.Host.parseDomTree )
  setTimeout( FB.XFBML.Host.parseDomTree, 0 );

09-25 17:22