我也看到過這種行爲,所以請讓我知道如果你發現它是什麼造成的。
在此期間,我想出了一個解決辦法:看
這段代碼首先檢查用戶登錄到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