javascript - Facebook 身份验证在 Chrome 中被阻止

标签 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 中运行(弹出窗口阻止)

请帮忙解决。

最佳答案

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

这里引用 the documentation (强调):

As noted in the reference docs for this function, it results in a popup window showing the Login dialog, and therefore should only be invoked as a result of someone clicking an HTML button (so that the popup isn't blocked by browsers).

您的代码可能因使用 <a href='javascript:void(0);' 而出现问题而不是<button>或有效的链接(例如 <a href="#"> 或类似的链接)。

希望这对某人有帮助!

关于javascript - Facebook 身份验证在 Chrome 中被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926743/

相关文章:

javascript - 如何在 xpath 1.0 中选择第 n 项?

javascript - 提取 id 的一部分

javascript - Facebook javascript SDK FB.login 在 Facebook iFrame 中不起作用

javascript - SlickGrid 中的单元格工具提示

javascript - 粗略的 Unicode -> 没有 CLDR 的语言代码?

javascript - Google Pay-错误:请求失败-意外的开发人员错误,请稍后重试

facebook - fb :login-button not showing up in Firefox, IE 或 Opera - 但在 Chrome 中工作正常

android - Facebook 和 Google 登录不适用于上传到 Firebase App Distribution 的 Android AAB 构建

javascript - Passport Facebook策略,使用AJAX触发路由

firebase - 新的 Firebase Facebook 登录