버튼 클릭 이벤트에서 Facebook JS SDK의 FB.getLoginStatus를 호출합니다. 내 문제는 status 매개 변수가 true로 설정된 경우 브라우저 팝업 차단기가 트리거되어 로그인 대화 상자가 표시되지 않도록하는 것입니다. 그러나 상태를 false로 설정하면 팝업 차단기가 트리거되지 않습니다. 페이지를 새로 고침하지 않고 사용자가 Facebook에 로그인 한 경우 사이트에서 알아야 할 정보가 필요합니다. False 매개 변수 값은 FB가 캐시 된 로그인 상태를 얻음을 의미합니다. 사용자가 여전히 사이트에 로그인 한 상태에서 로그 아웃하면 잘못 될 수 있습니다.FB.getLoginStatus 브라우저 팝업 차단기를 시작합니다. 어떻게 그걸 막을 수 있니?
어떻게이 문제를 해결할 수 있습니까? 여기
는 "클릭"이벤트와의 연결을 끊고 문제$('.my-button').click(function() {
FB.getLoginStatus(function (response) {
if (response.status != 'connected') {
FB.login(function (r) {
if (r.status == 'connected') {
alert('logged in');
}
});
}
}, true);
});
사용자가 버튼을 클릭 (예 : 페이지로드)하기 전에 FB.getLoginStatus를 호출하고 결과를 변수에 저장하고 변수 상태에 따라 클릭 핸들러에서 FB.login을 직접 호출 할 수 있습니다 , 아니? – Pierre