1

我在我们的网站上嵌入了 Facebook 评论插件,由于某种原因,评论插件卡在永久加载状态,如下所示:

Facebook评论插件永久加载

我不确定这是 Facebook 问题还是我的代码。这是我在开始<body>标签之后的内容:

<div id="fb-root"></div>
<script>
   window.fbAsyncInit = function () {
      FB.init({ appId: '1234567890', cookie: true, oauth: true });
   };
   (function (d) {
      var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
      if (d.getElementById(id)) { return; }
      js = d.createElement('script'); js.id = id; js.async = true;
      js.src = "//connect.facebook.net/en_US/all.js";
      ref.parentNode.insertBefore(js, ref);
   } (document));
</script>

(1234567890 是我的实际 appID 所在的位置)

在我想显示 Facebook 评论插件的页面上,我有这个:

<div class="fb-comments" data-href="http://mydomain.com" 
     data-num-posts="2" data-width="580"></div>

据我所知,这一切都应该有效。但是,我没有看到任何关于此的 FB 错误,我也没有在其他网站上看到问题。所以我猜这是我的代码?

我什至尝试使用 FB 开发者网站上的代码生成器给出的确切代码:

<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/en_US/all.js#xfbml=1&appId=1234567890";
       fjs.parentNode.insertBefore(js, fjs);
    } (document, 'script', 'facebook-jssdk'));
</script>

不幸的是,这也不起作用。

希望有人帮助我指出正确的方向!

更新:我试过把我的 AppID 放在这个小提琴(http://jsfiddle.net/Rw79Q/)中,它可以工作。所以我的代码中有一些东西导致了这个问题。不知道它可能是什么,我不能在这里分享我的整个代码。

4

1 回答 1

1
window.fbAsyncInit = function () {
   ({ appId: '1234567890', cookie: true, oauth: true });
};

该函数的主体实际上不应该是一个参数吗?({ appId: '1234567890', cookie: true, oauth: true });在函数体中创建一个对象字面量,然后什么也不做。这相当于写:

window.fbAsyncInit = function () {};

这是没用的。

您的其余代码看起来可以正常工作,但目前我手头没有有效的应用程序 ID / 域可供测试。将您的应用程序 ID 和域放在这个小提琴中,看看它是否有效:http: //jsfiddle.net/Rw79Q/


从聊天讨论来看,该页面必须位于实时服务器上,否则您将获得“无限加载”行为。我能够使用本地file:URI 重新创建该行为。希望一旦您将其投入生产,问题就会消失。

于 2012-05-08T09:11:29.767 回答