【发布时间】:2012-03-23 15:27:03
【问题描述】:
A 无法阻止 Facebook JS SDK 显示的弹出窗口。阅读文档后,我了解到JS SDK的调用必须在用户点击之后。 此代码工作正常,浏览器不会阻止弹出窗口:
function Login() {
FB.login(function (response) {
if (response.authResponse) {
DoSmth(response.authResponse.accessToken);
}
}, { scope:'user_birthday, publish_stream' });
}
但如果我将在任何地方使用此代码(例如发布到墙上,获取用户数据),弹出窗口将在所有情况下显示,即使用户已经登录 facebook。我认为,这不好。
为了确定该用户已经登录,我使用以下代码:
function CheckOrLogin() {
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
DoSmth(response.authResponse.accessToken);
}
else {
FB.login(function (response) {
if (response.authResponse) {
DoSmth(response.authResponse.accessToken);
}
}, { scope:'user_birthday, publish_stream' });
}
}, true);
}
在这种情况下,如果用户已经登录,则不会显示弹出窗口。但如果用户尚未登录 facebook,则此条件 (if (response.status ===) 返回 false。并且浏览器将是 BLOCK弹窗,FB.login会显示。有什么办法可以防止吗?
【问题讨论】:
-
我也有同样的问题:/
标签: javascript facebook popup