在Facebook Connect网站上通过AJAX加载Facebook fb:profile-pic

页面加载后,我正在发出一个AJAX请求来下载一个HTML块,其中包含代表Facebook用户个人资料图片的标签。 我将结果追加到DOM中的一个点,但徽标没有加载,而我看到的只是默认轮廓。

这里只是我如何使用jQuery加载HTML块

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

我附加的HTML是一个像这样的差异列表:

 

Corona KingslyMy Status Update
52 minutes ago

有任何想法吗? 我假设加载dom后没有处理fb标签。 有没有办法让这种情况发生? 我在Firebug控制台中没有看到任何exception或错误。

谢谢

第一次尝试

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

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


跟进

所以我认为init函数解析fbml。 所以显而易见的问题是,如果在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 ); 

FB.XFBML.Host.parseDomTree对我不起作用。 也许它已经改变了新的api。 做了什么工作:

 FB.XFBML.parse(document.getElementById('foo')) 

要么

 FB.XFBML.parse() 

如果你想要解析整个页面。

我正在使用带有MVC3的Microsoft-Web-Helpers(包括facebook帮助者)

剃刀语法

  @Facebook.GetInitializationScripts() 

。OUPUTS

  

所以我需要打电话

 window.fbAsyncInit(); 

要重新解析Facebook内容。