通过FacebookConnect站点中的AJAX加载FacebookFB:ProfilePIC
加载页面后,我会发出一个AJAX请求,以下拉包含表示Facebook用户配置文件图片的标记的HTML块。我将结果附加到DOM中的一个点上,但不会加载徽标,相反,我看到的是默认轮廓 下面是我如何使用jQuery加载HTML块通过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({
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();