2010-07-22 62 views
7

为了给你一个简单的用例 - 在我的网站上,我显示由Facebook用户发布的评论。对于每条评论,我使用fb:profile-pic标签和fb like按钮显示facebook用户照片。Facebook标签不使用Jquery动态生成时呈现

此页面正常呈现,并且所有内容都显示正常。现在,当用户想要阅读旧评论时,他们点击“更多”链接

使用jquery,我拉过旧的评论,并在JavaScript构建内容添加fb:profile-pic和fb:like标签

但这些标签不显示。我们是否需要重新加载它或什么。 感谢您的帮助

+0

你应该重新加载...我通过AJAX的建议,... – Reigel 2010-07-22 03:51:30

+0

我怎么做 - 就像现在,我建我的整个字符串说评论=“

I love icecream
” 然后我会做$(“#myswipes”)。html(comment); 那么我将如何重新加载。 – Gublooo 2010-07-22 04:01:20

回答

28

首先确保FBML被插入到DOM与一名检查员。如果是这样,您只需告诉Facebook将FBML标签转换为HTML标签,以便浏览器可以呈现它。使用Graph API,您可以使用JavaScript SDK调用FB.XHTML.parse http://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse。下面是我的代码示例:

$('#list').append('<fb:name uid="4"></fb:name>'); 
FB.XFBML.parse(document.getElementById('list')); 
+1

谢谢你谢谢你谢谢 - 我爱你 - 你节省了我这么多的时间..........那正是我所需要的 - 再次感谢 – Gublooo 2010-07-22 07:01:17

+0

谢谢,真的也帮助了我 – srcastro 2011-07-01 02:07:52

+0

而我,这是一个可爱的小修补!我在使用ajax加载的jQuery选项卡时使用按钮,无法让它呈现我尝试的任何内容,直到找到它为止。从我这里大起来! – Rich 2011-09-20 06:06:37

-1

我怎么做 - 就像现在我 建立我的整个字符串说 comment="<div>I love icecream<br/><fb:profile-pic uid='xxx'></fb:profile-pic></div>" 然后我会做 $("#myswipes").html(comment);因此,如何 我会重新加载。

可以使用$.ajax(),说

$('a.moreComment').click(function(){ 
    $.ajax({ 
     url: 'some/url.php', 
     success : function(comment){ 
      $("#myswipes").html(comment); 
     } 
    }); 
}) 

some/url.php应该是能够正确地呈现,并返回该行的服务器,<div>I love icecream<br/><fb:profile-picuid='xxx'></fb:profile-pic></div>

+0

它在服务器端与客户端端渲染相同的行有什么区别。我只是尝试你的方法,它不工作 – Gublooo 2010-07-22 05:30:01

+0

如果你可以在浏览器中显示'some/url.php'没有问题,那应该工作... – Reigel 2010-07-22 05:46:43

+0

如果我返回任何其他字符串 - 显示正常 - 但是当我返回一个fb标签字符串,如 Gublooo 2010-07-22 05:52:07