我像这样指定Facebook喜欢/发送按钮:
<fb:like href="[URL]" show_faces="false" width="428" action="recommend" font="tahoma" send="true"></fb:like>
在显示这些按钮的过程中,它们会经历以下三种视觉状态:
1)首先发送按钮和推荐按钮与发送按钮并排显示。
2)推荐按钮和发送按钮切换位置,但发送按钮显示在预期显示位置下方。
3)当发送按钮向上移动时,推荐按钮和发送按钮正常并排显示。
这是一个异常,我可以通过指定按钮来做一些事情,还是我需要等待来自Facebook的修复?
在编辑时,这是我正在使用的代码......
在body标签之后,我有(使用尖括号编辑特定于站点的信息)...
<div id="fb-root"></div>
<script language="javascript" type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: '<appid>',
status: true,
cookie: true,
xfbml: true,
channelUrl: '<siteroot>/channel.html',
oauth: true
});
FB.Event.subscribe('edge.create', function(href, widget) {
_gaq.push(['_trackEvent', 'facebook', 'like', href]);
});
};
(function(d) {
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
按钮代码如下:
<fb:like href="<pageurl>" show_faces="false" width="428" action="recommend" font="tahoma" send="true"></fb:like>
答案 0 :(得分:0)
我自己并没有看到这个,但听起来像是fb:like标签在整个页面呈现之前填充的东西。你是如何调用初始化标签的javascript的?您可以尝试在window.onload事件中进行设置,以便在页面完全加载之前不会运行。
要尝试的一些事项:
将<fb:like>
标记括在宽度为428px的div中。
将async = true更改为async = false(暂时只是为了解决问题)。
同样,尝试将async = true转换为defer = true。
将代码布局更改为:
<head>
<script type='text/javascript' src='http://connect.facebook.net/en_US/all.js' defer='defer'></script>
</head>
<body>
<div id="fb-root"></div>
<script language="javascript" type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: '<appid>',
status: true,
cookie: true,
xfbml: true,
channelUrl: '<siteroot>/channel.html',
oauth: true
});
FB.Event.subscribe('edge.create', function(href, widget) {
_gaq.push(['_trackEvent', 'facebook', 'like', href]);
});
};
</script>
或者甚至可以这样:
<head>
window.onload=function() {
d=document;
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('body')[0].appendChild(js);
};
</head>
<body>
<div id="fb-root"></div>
<script language="javascript" type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: '<appid>',
status: true,
cookie: true,
xfbml: true,
channelUrl: '<siteroot>/channel.html',
oauth: true
});
FB.Event.subscribe('edge.create', function(href, widget) {
_gaq.push(['_trackEvent', 'facebook', 'like', href]);
});
};
</script>