Вот что я хочу: диалоговое окно с надписью «Эй, нам нужно войти в Facebook и авторизоваться», а затем кнопка, которая переходит на страницу входа в Facebook, чтобы затем вернуться на главную страницу (ту, которая открыла диалог .
Прямо сейчас, диалоговое окно всплывает нормально, затем оно правильно перенаправляет на Facebook, затем перенаправляет назад, но вместо того, чтобы просто выскочить на главную страницу, оно выскакивает, затем снова всплывает, затем снова всплывает. Я уверен, что сделал то, чего не должен был делать. Также ПОЖАЛУЙСТА, прокомментируйте мой jquery, потому что я новичок в этом и предпочел бы не иметь вредных привычек.
Вот что у меня есть.
index.html, который имеет это диалоговое окно в теле:
<div id="dialog1" data-role="dialog" data-theme="b">
<div data-role="header" data-position="inline">
<h1> Welcome!</h1>
</div>
<div data-role="content">
<p>
<h5> Hey! Welcome to Tag Search. We need to take a few steps to set up the app. <br><br>
First you have to login to facebook and authorize Tag Search. Don't worry, we'll never post anything to your wall unless you tell us to! <br>
</h5>
</p>
<a id="loginBtn" data-role="button">Click Here to Login!</a>
</div>
</div>
In my <script> tags I have this event listener:
$("#loginBtn").bind("click",function(x){
$('#dialog1').dialog('close');
login();
});
Также:
function login() {
FB.login(
function(response) {
console.log(response.session);
if (response.session) {
getLoginStatus();
//alert('logged in');
} else {
alert('not logged in');
}
},
{ perms: "email, friends_photos, offline_access" }
);
}
И
function getLoginStatus() {
FB.getLoginStatus(function(response) {
if (response.status == 'connected') {
//alert('Connected');
if(!session_access_token)
session_access_token=response.session.access_token;
getMe();
$("#loginout").text('Logout');
$("#loginout").bind('click', function(){logout()});
} else {
$.mobile.changePage('#dialog1', 'pop');
}
console.log(response);
});
}
getLoginStatus вызывается для document.addEventListener ('deviceready', function () {