我也看到过这种行为,所以请让我知道如果你发现它是什么造成的。
在此期间,我想出了一个解决办法:看
这段代码首先检查用户登录到Facebook的(这似乎是在按钮不会有时显示的唯一情况)。然后,它检查Facebook登录按钮是否成功显示。如果确实出现,我们会隐藏“备份按钮”。
使用JS以检查登录状态:
*请注意,我使用jQuery代码($(...)一类“.fb_button”以检查是否存在按钮的存在(任何元素)和隐藏备份按钮,如果你不使用jQuery,你将不得不使用一些标准的JavaScript
function fbLoginBandaid() {
FB.getLoginStatus(function(response) {
console.log(response);
if ((response.status)&&(response.status=='connected')) {
//They are logged into Facebook and are connected to our site.
//if the Facebook button did not render, we'll show the backup
if ($('.fb_button').length > 0) {
$('.fbloginbackup').hide();
}
}
} else if ((response.status)&&(response.status=='notConnected')){
//They are logged into facebook but not connected to this site
//if the Facebook button did not render, we'll show the backup
if ($('.fb_button').length > 0) {
$('.fbloginbackup').hide();
}
}
});
}
FB初始化代码:。
window.fbAsyncInit = function() {
/*...ALL YOUR NORMAL CODE HERE */
fbLoginBandaid(); //bandaid fixes facebook button not showing sometimes. This forces display of a backup button we've made. Sometimes, this cuases two working buttons to show: ours and the Facebok one that should always be appearing.
};
现在,把一个“备份”按钮你的HTML:
<!--Backup Button -->
<a class="fbloginbackup" title="Login with Facebook" href="#" onclick="INSERT_YOUR_LOGIN_SCRIPT(); return false;"><img src="insert_your_button_here.png" width="154" height="22" /></a>
<!-- Button that was supposed to work all the time -->
<fb:login-button length="long" autologoutlink="false" onlogin="fbLogin()"></fb:login-button>
大概你有一个登录脚本来处理已登录到Facebook的用户的登录,因为你不会呈现Facebook登录窗口。
希望这会有所帮助。
检查您的JavaScript控制台的任何错误。 并且还看到AppId存在 – Neelam
没有任何错误并且AppId存在。它在我从Facebook注销时起作用。但是在我的页面上,无论当然都会呈现相同的html。 –
而不是使用Facebook登录按钮,你也可以绕过其他方式。你可以有一个正常的ASP与Facebook上的图像,并有facebook代码运行在该按钮的客户端点击事件。这种方式,你可以处理aspx按你想要的方式按钮。那是怎么在我的网站上做到的。 – Neelam