Facebook认证在Chrome中受阻

时间:2015-04-28 18:03:55

标签: javascript facebook-authentication

Facebook登录(身份验证)表单在Google Chrome中被屏蔽(不是所有时间,但有时都是这样)。

fb的HTML内容

<a href='javascript:void(0);' id='facebook'><img src='fblogimage'></a>

<。>在.js文件中

$("#facebook").click(function ()
{
    Facebook.authenticate(function () { 
       Login.hidePopup();
    });
});

Facebook.authenticate = function (callback)
{
    FB.getLoginStatus(function (response) {
        if (response.status === 'connected')
        {
            // -- success process
        }
        else
        {
            FB.login(function (loginResponse)
            {
                if (loginResponse.status === 'connected')
                {
                    Facebook.setUserName();
                    Facebook.fbApi(loginResponse, callback);
                }
            },
            {
                scope: 'user_friends, publish_stream, email, user_location, 
                user_mobile_phone'
            });
        }
    });
}

它在FF和IE中有效,但在Google Chrome中无效(弹出窗口阻止)

请帮忙解决。

1 个答案:

答案 0 :(得分:0)

我在多个浏览器中遇到此问题,而不仅仅是Chrome。事实证明,您必须通过点击按钮来调用登录弹出窗口。

这里引用了the documentation(强调补充):

  

如此功能的参考文档中所述,它会产生一个   弹出窗口显示“登录”对话框,因此应该只是   由于某人点击HTML按钮而调用(以便   弹出窗口不被浏览器阻止

由于使用<a href='javascript:void(0);'代替<button>或有效链接(如<a href="#">或类似内容),您的代码可能会遇到问题。

希望这有助于某人!