通过FacebookConnect站点中的AJAX加载FacebookFB:ProfilePIC

通过FacebookConnect站点中的AJAX加载FacebookFB:ProfilePIC,facebook,jquery,fbml,Facebook,Jquery,Fbml,加载页面后,我会发出一个AJAX请求,以下拉包含表示Facebook用户配置文件图片的标记的HTML块。我将结果附加到DOM中的一个点上,但不会加载徽标,相反,我看到的是默认轮廓 下面是我如何使用jQuery加载HTML块 $.ajax({ url: "/facebookprofiles" success: function(result) { $('#profiles').append(result); } }); 我附加的HTML是一个差异列表,如下所示: <di

加载页面后,我会发出一个AJAX请求,以下拉包含表示Facebook用户配置文件图片的标记的HTML块。我将结果附加到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>


Corona Kingsly我的状态更新
52分钟前

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


谢谢你的第一次尝试

不确定这是否有很大帮助,但这里有一篇关于Ajax+FBML的文章:

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


跟进

所以我认为init函数解析fbml。因此,一个显而易见的问题是,如果在init之后插入fbml,如何让facebook的javascript库重新解析fbml(或者仅仅解析新的fbml)

看起来此线程可能会有帮助:

以下是相关的代码,尽管论坛上有更多的上下文:

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

FB.XFBML.Host.parseDomTree对我不起作用。 也许它在新的api中已经改变了。 我们所做的工作是:

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


如果您想解析整个页面。

我正在使用Microsoft Web Helpers和MVC3(包括facebook Helpers)

剃刀语法

 @Facebook.GetInitializationScripts()
输出

<script type="text/javascript">
        window.fbAsyncInit = function () {
            FB.init({ appId: '115631105198333', status: true, cookie: true, xfbml: true });
        };
        (function () {
            var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol +
            '//connect.facebook.net/en_US/all.js';
            document.getElementById('fb-root').appendChild(e);
        } ());

        function loginRedirect(url) { window.location = url; }
    </script>

重新解析facebook内容

我应该提到我正在使用Facebook Connect。我已经梳理了与setInnerFBML()相关的所有内容,但它是FBJS的一部分,我看不出在FB之外使用Facebook Connect时如何利用它。@user239427这些代码行放在哪里了??在页面上的脚本调用中,该页面正在加载ajax加载的div。。或者在原始脚本页面上?这也是我必须使用的
<script type="text/javascript">
        window.fbAsyncInit = function () {
            FB.init({ appId: '115631105198333', status: true, cookie: true, xfbml: true });
        };
        (function () {
            var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol +
            '//connect.facebook.net/en_US/all.js';
            document.getElementById('fb-root').appendChild(e);
        } ());

        function loginRedirect(url) { window.location = url; }
    </script>
window.fbAsyncInit();