Я работаю в facebook api, но что происходит, когда я нажимаю «Войти с facebook» это открывает два всплывающих окна вместо одного.Facebook api открывает два всплывающих окна
его, как если пользователь это уже вошли в фейсбуке, по нажатию на кнопку она открывает всплывающее и в доли секунды возвращается по проверки сессии и мой сайт работает совершенный в этом случае, но в случае, если пользователь не вошел в систему, в этом случае 2 pop ups выходит, теперь, что происходит, когда пользователи входят в учетные данные правильные и прессы введите в появившемся окне он закрывается, но из-за второй (уже присутствует) окно мой скрипт не работает, но любой, как моя переменная сессии получает сохраненную с USERID(что на самом деле я хочу), (Я знаю эту вещь, потому что, когда я обновляю страницу индекса сайта после закрытия нежелательного всплывающего окна, я обычно иду на свою страницу профиля).
Я ссылался на this page, а также для решения проблемы, но бесполезно. прошу пролить свет, чтобы открыть только одно всплывающее окно.
Я использую этот код, как:
<script src="http://connect.facebook.net/en_US/all.js"></script>
<!-- Start of facebook login -->
<div id="fb-root"></div>
<fb:login-button size="large" id='login'">
Login with Facebook
</fb:login-button>
<script>
// initialize the library with the API key
window.fbAsyncInit = function() {
try{
FB.init({
apiKey : 'API KEY',
status : true,
cookie : true,
xfbml : true,
oauth : true
});
FB.getLoginStatus(function(response){
loginHandler();
});
}catch(error){}
};
function loginHandler(response,fail)
{
try{
if(response && response.authResponse){
FB.api('/me', function(response,fail) {
var email=response.email;
var firstName=response.first_name;
var lastName=response.last_name;
var gender=response.gender;
var dob=response.birthday;
var remainLogin=$('#remainLogin').val();
$('#login').attr("disabled", true);
$.ajax({
url: "loginViaFacebook",
type: "POST",
data: {email:email,firstName:firstName,lastName:lastName,gender:gender,dob:dob,remainLogin:remainLogin},
success: function (data) {
if (data.indexOf("true") != -1){
location.href = 'MainHome.jsp';
}
else
jAlert('Email not registered ... ','Email not found',ERROR);
$('#login').attr("disabled", false);
},
error: function(xhr, ajaxOptions, thrownError){
if(xhr.status==404)//Wrong url
jAlert('Check the url','ERROR',ERROR);
else if(xhr.status==500)//Exception in server side coding
jAlert('Exception in server coding, check your email or try one more time','ERROR',ERROR);
else if(xhr.status==408)//timeout
jAlert('Server taking time to respond','ERROR',ERROR);
else
jAlert('Some error occured ' + thrownError,'ERROR',ERROR);
$('#login').attr("disabled", false);
},
timeout : 5000
});
});
}
}catch(error){alert(error);}
}
var popUp;
$('#login').bind('click', function(response) {
try{
FB.login(loginHandler, {scope: 'email,user_birthday'});
}catch(error){}
});
$('#logout').bind('click', function() {
try{
FB.logout(function(response){});
}catch(error){}
});
</script>
<!-- End of facebook login -->
Этот вопрос практически невозможно прочитать. – Martin
Оставьте это, его 5 лет, эта проблема исправлена: D –
Stackoverflow не только для айзеры, чтобы получить ответы, но и для других людей, чтобы найти эти вопросы, а также решить их проблемы. Я, наряду с ~ 600 другими, нашел эту страницу, чтобы решить нашу проблему. Так что да, я буду комментировать, когда вопросы/ответы неразборчивы, потому что это не просто для вас, это для всех нас. – Martin