我在我们的网站上嵌入了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/),它确实有效。所以我的代码中有一些东西导致了这个问题。不知道它可能是什么,我不能在这里分享我的整个代码。
答案 0 :(得分: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重新创建行为。希望一旦你将其推向生产,这个问题就会消失。