JQuery和Facebook API函数优先级/优先级

时间:2014-09-26 07:56:22

标签: jquery facebook

我想从我的网站和FB注销用户。

首先是preventDefault(阻止表单提交)然后是getLoginStatus(需要FB访问令牌),然后调用FB.logout,最后在我的页面上提交注销表单。

$("logout-button").click(function (event) {
    event.preventDefault();
    FB.getLoginStatus(function (response) {
        if (response && !responce.error) {
            if (response.status === "connected") {
                FB.logout();
            }
        }
    });
    $("logout-form").submit();
});

问题是提交优先,永远不会调用FB.logout()。

关于如何使这个脚本始终首先执行FB.getLoginStatus的任何建议,等待函数exe并最终调用submit?

1 个答案:

答案 0 :(得分:1)

FB.getLoginStatus应该在页面加载时使用,因此您只需将用户ID存储在变量中 - 以检查用户是否已登录:

var userID;
FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
        userID = response.authResponse.userID;
    }
});

....然后:

$("logout-button").click(function (event) {
    event.preventDefault();
    if (userID) {
        FB.logout();
    }
    $("logout-form").submit();
});

我的未经考验的想法,但它应该工作。你应该总是在用户交互上调用FB.logout和FB.login - 现在你在FB.getLoginStatus的异步回调函数中调用它。