【问题标题】:Display Facebook Comments on Ajax generated page/website在 Ajax 生成的页面/网站上显示 Facebook 评论
【发布时间】:2012-08-28 07:47:15
【问题描述】:

3 天多来我一直在研究可能的 StackOverflow 解决方案......基本上尝试了任何建议的方法 - 但我似乎无法让它发挥作用。

我有一个带有购买主题的wordpress 网站。这个主题使用Ajax 来加载它的页面和帖子。该网站可以在这里找到:http://www.eonevent.com - 作为示例。

我现在面临的是,通过正常导航选项访问此页面 (http://www.eonevent.com/#/socialize) 时,Facebook cmets 和 twitter 小部件均未加载或显示。但是,当访问没有 "#/" 的页面时,它确实有效。

现在我一直在读到您必须使用 FB.XFBML.parse 作为 Facebook cmets - 但我无法做到这一点......而且我尝试了许多不同的选项。

我目前的设置如下...

这是header.php文件中的一部分代码:

<div id="fb-root"></div>
<script>
     (function(d, s, id) {  
          var js, fjs = d.getElementsByTagName(s)[0]; 
          if (d.getElementById(id)) return;  
          js = d.createElement(s);
          js.id = id;  
          js.src = "//connect.facebook.net/nl_NL/all.js#xfbml=1&appId=373787556026745";    
          fjs.parentNode.insertBefore(js, fjs);
     }
     (document, 'script', 'facebook-jssdk'));
</script>

这是我在 cmets 必须出现的页面上使用的:

<fb:comments href="<?php the_permalink(); ?>" num_posts="2" width="500">     
</fb:comments>

然后我尝试通过添加来完成所有工作:

FB.XFBML.parse

但一切都无济于事。

欢迎提出任何建议 - 还包括 twitter 小部件。 我只是似乎无法弄清楚 - 尽管它可能很简单!

提前致谢,

【问题讨论】:

  • 你必须给函数名加上括号才能执行它...FB.XFBML.parse()
  • 那会是什么样子?
  • 我刚刚注意到您在标题元素中放置了fb-root div。你能试试把它放在&lt;body&gt;吗?

标签: ajax facebook wordpress twitter comments


【解决方案1】:

尝试将此代码放在 jQuery 脚本中 AJAX 调用的成功部分中。 您可能正在使用 jQuery get/post/ajax 等。

//facebook comments
var isFacebook = $(data).find('.fb-comments');
var document = window.document;
var contentNode = $(".content");       
if(isFacebook != 'undefined' ) {
    var scriptText = 'FB.XFBML.parse();';
    var scriptNode = document.createElement('script');
    scriptNode.appendChild(document.createTextNode(scriptText));
    contentNode.appendChild(scriptNode);
}

【讨论】:

    猜你喜欢
    • 2012-03-25
    • 2013-10-31
    • 2014-02-09
    • 1970-01-01
    • 2018-04-10
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多