jQuery load()和Facebook评论

9
长话短说:通过jQuery.load()从另一个页面加载到灯箱类型的东西中时,Facebook评论不会被显示。当您直接访问在灯箱中加载的页面时,FB评论会被显示。

灯箱是我用jQuery编写的自定义工具,它从文章的永久链接页面加载帖子容器DIV。要查看发生了什么,请访问http://frank.is/blog/。使用主链接在灯箱中查看帖子,并单击PERMA→以查看其自己的页面。它应该是不言自明的。

我的问题是:我需要添加什么才能使这些评论在灯箱中显示出来?

2个回答

27

将这段代码添加到你的 AJAX 调用输出中:

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<fb:comments href="www.example.com" num_posts="2" width="500"></fb:comments>

<script>FB.XFBML.parse();</script>

应该完全可以工作!


3
FB.XFBML.parse(); 你真是个天才!我没有按照你写的那样做,而是在ajax调用之后添加了FB.XFBML.parse(); - Kaan Soral
终于在整个网络上寻找后,我终于得到了我需要的回调!非常感谢 :) - Andrew Howard

5

Facebook API的使用让我感到困扰。获取信息的方式不够清晰,我理解你的烦恼。

话虽如此,在轻箱中似乎出现了未初始化的原始XFBML。看起来你需要在加载数据后重新解析它。

<fb:comments migrated="1" publish_feed="true" width="600" numposts="10" href="http://frank.is/blog/2011/05/26/google-apps-on-iphone-connection-to-the-server-failed/" xid="VQ4yhN59hJmmSXq_post73"></fb:comments>

在将XFBML加载到灯箱中后,您可以尝试手动调用parse

FB.XFBML.parse();

或者针对组件进行优化以提高加载速度:
FB.XFBML.parse(document.getElementById('fbComments'));

我把它放在load()回调函数中,但没有效果。我是不是没有放在正确的位置? - Frank
我刚刚注意到你的落地页没有加载或初始化Facebook JDK。你在单独的帖子页面上有它。你需要加载和初始化Facebook JDK,然后在加载评论XFBML时手动强制解析。 - digitaldreamer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接