0

使用Facebook 评论时,我在本地和在线的每个浏览器中都有一个 javascript 错误。
尝试检索 0 条或多条评论似乎并没有改变任何东西。
有人有想法吗?

错误信息

消息:'this._count.value.0' 为 Null 或不是对象。
All.js,行:48,代码:0
URI:http ://connect.facebook.net/en_US/all.js#xfbml=1

页面中的代码

<fb:comments-count href="<%= WebTools.Permalink %>"></fb:comments-count>
<fb:comments href="<%= WebTools.Permalink %>" num_posts="2" width="839"></fb:comments>

提前致谢

4

2 回答 2

1

我已经成功诊断并解决了这个问题。

这是我异步加载 Facebook JavaScript SDK 的代码:

(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";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

这是我初始化它的代码:

FB.init({
    appId: {APP_ID},
    status: true,
    cookie: true,
    xfbml: true,
    oauth: true
});

请注意,我实际上已经请求过两次 XFBML 解析:一次是在加载 JavaScript SDK 时 ( #xfbml=1),另一次是在初始化它时 ( xfbml: true)。

这会导致阻止comment-count标签呈现的错误。

决议是取消这两项声明中的一项;我建议#xfbml=1从 JavaScript SDK URL 的末尾删除,因为在加载时请求 XFBML 解析似乎已被弃用

我的装载机现在看起来像这样:

(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";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

一切都很完美。

同步加载

如果您同步加载 JavaScript SDK,请更改:

<script src="//connect.facebook.net/en_US/all.js#xfbml=1"></script>

对此:

<script src="//connect.facebook.net/en_US/all.js"></script>
于 2011-10-04T18:59:15.297 回答
0

我实际上发现这是 Facebook 的问题
相同的代码在 dev 和 prod 中有效,但在本地或暂存中无效......

欲了解更多信息
有一个网站详细解释它:http:
//www.codepreneur.com/2011/07/facebook-like-button-not-working-or-resets-itself/

于 2011-10-04T19:53:40.177 回答