我从按钮点击事件调用Facebook JS SDK的FB.getLoginStatus。我的问题是,如果status参数设置为true,则浏览器弹出窗口阻止程序会被触发,从而阻止登录对话框显示。但是,当我的状态为false时,弹出窗口阻止程序不会被触发。 我需要的状态为true,因为我的网站需要知道用户是否登录Facebook而无需刷新页面。 False参数值意味着FB仅获取缓存的登录状态,如果用户在您的网站上仍然退出Facebook时可能会出错。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,将结果存储在变量中,并且能够根据变量状态直接在Click处理程序中调用FB.login ,不是吗? – Pierre