在使用Facebook评论时,我在本地和在线的每个浏览器上都有一个javascript错误。
试图撤回0或多个注释似乎不会改变任何事情。
有人有主意吗?
错误消息
消息传递:“this._count.value.0”是“空”或“非空”。
All.js,行: 48,代码:0
页面中的代码
<fb:comments-count href="<%= WebTools.Permalink %>"></fb:comments-count>
<fb:comments href="<%= WebTools.Permalink %>" num_posts="2" width="839"></fb:comments>提前感谢
发布于 2011-10-04 19:53:40
事实上,我发现,这是Facebook的end上的一个问题。
相同的代码在dev和prod中工作,但在本地或阶段中不起作用.
获取更多信息
有一个网站对此作了详细解释:
http://www.codepreneur.com/2011/07/facebook-like-button-not-working-or-resets-itself/
发布于 2011-10-04 18:59:15
我已经成功地诊断并解决了这个问题。
下面是我异步加载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时(xfbml: true)。
这会导致错误,从而阻止comment-count标记的呈现。
解决方案是消除这两种声明中的一种;我建议将#xfbml=1从JavaScript SDK的末尾删除,作为在加载时似乎不受欢迎请求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>https://stackoverflow.com/questions/7584691
复制相似问题