0

我从 Facebook API 中提取相册照片,然后以砖石风格排列它们。我已经设置好了,这样我就可以运行 API 函数,然后当我点击一个按钮时,它会运行 masonry 函数,它工作正常。现在我想做的是在下载所有图像后自动运行砌体,如下所示:

function fbAPI() {
  //downloading photos and placing them in a div
  masonryFunction();
}

function masonryFunction(){
  //run the masonry plugin
}

我遇到的麻烦是 masonryFunction 在 fbAPI 完成它之前运行良好,这会阻止它工作(必须先加载所有照片)。现在我不能简单地在页面加载时运行 masonryFunction,因为 fbAPI 直到一些用户输入后才会启动。我能做些什么?

4

1 回答 1

0

FB登录函数的回调函数中调用fbAPI()函数。

例如,

FB.login(function(response) {
    if (response.authResponse) {
        facebookLoggedIn();
    } else {
        alert('User cancelled login or did not fully authorize.');
    }
});

function facebookLoggedIn() {
    fbAPI();
}

或者,订阅 FB auth.statusChange 事件:

FB.Event.subscribe('auth.statusChange', function(response) {
    facebookStatusChange(response);
});

function facebookStatusChange(response) {
    if (response.status === 'connected') {
        uid = response.authResponse.userID;
        accessToken = response.authResponse.accessToken;
        facebookLoggedIn();
    } else if (response.status === 'not_authorized') {
        // the user is logged in to Facebook, 
        // but has not authenticated your app
    } else {
        // the user isn't logged in to Facebook.
    }
}
于 2013-06-27T22:14:41.340 回答