在页面显示中使用getLoginStatus时FB未定义

时间:2012-01-06 13:08:34

标签: facebook jquery-mobile

我正在获取FB未定义,当我编写以下代码时,我已成功使用window.fbAsyncInit为facebook添加了必要的文件,问题是如果我在“click”事件下编写以下代码然后它运行良好但不是在jquery mobile中的pageshow时间。发生这种情况可能是因为facebook js文件加载时间晚了。但我想检查每个页面上的用户状态,以限制不必要的或匿名访问。

$("#details").live( "pageshow", function() {

            FB.getLoginStatus(function(response) {
              if (response.status === 'connected') {
                // the user is logged in and connected to your
                // app, and response.authResponse supplies
                // the user's ID, a valid access token, a signed
                // request, and the time the access token 
                // and signed request each expire
                var uid = response.authResponse.userID;
                var accessToken = response.authResponse.accessToken;

                console.log("INSIDE ME");
              } else if (response.status === 'not_authorized') {
                // the user is logged in to Facebook, 
                //but not connected to the app
                console.log("OUTSIDE ME");
              } else {
                // the user isn't even logged in to Facebook.
              }
        });

 });

1 个答案:

答案 0 :(得分:0)

将jQuery live()赋值放在window.fbAsyncInit中。因此,只有在FB有机会初始化后才会将其应用于DOM元素。