我正在获取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.
}
});
});
答案 0 :(得分:0)
将jQuery live()赋值放在window.fbAsyncInit中。因此,只有在FB有机会初始化后才会将其应用于DOM元素。