FB.XFBML.parse()无法刷新Facebook评论

3

我有一个JS照片库,当用户点击缩略图时,它会从API加载单个图像到页面中。我希望人们能够在每张图片上添加Facebook评论。因此,我在包含库的页面中放置了我的Facebook评论元素。

<div class="fb-comments" data-href="" data-num-posts="10" data-width="480"></div>

加载页面并首次填充画廊时,我将评论元素的data-href属性设置为第一张图片的URL(例如http://site.com/gallery/1027/1)。然后,如果用户单击缩略图,则将该属性重置为所选图片的URL。
fbComments.attr('data-href', data.link + index);
FB.XFBML.parse();

FB.XFBML.parse();是用来让Facebook刷新评论的方法。我已经在一张图片上添加了一条评论,并尝试点击没有评论的另一张缩略图,但是第一张图片的评论仍然存在。有人能给出建议吗?

我在我的JS文件中尝试记录FB对象,并且记录成功,所以我在调用时可以使用它。我检查过JS中的点击事件确实将 data-href 属性改为正确的值。当我在fb-comments元素中硬编码不同的data-href时,评论会按预期显示。

1个回答

7

我建议您从dom中完全删除以前的评论框,然后插入一个具有正确 data-href 的新html,然后调用FB.XFBML.parse方法。

另一件事是您应该指定解析的位置,如下所示:

FB.XFBML.parse(document.getElementById("container-id"));

很高兴能帮上忙。只是为了澄清一下:在调用parse方法时指定dom元素并不是必须的,它应该可以正常工作,但通过传递它,您可以防止遍历整个dom树。 - Nitzan Tomer
明白了,谢谢Nitzan。我正在使用FB.XFBML.parse(document.getElementById('social'));进行操作,其中'social'是FB插件元素容器的ID。这似乎有效。 - And Finally

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