Facebook登录(身份验证)表单在Google Chrome中被屏蔽(不是所有时间,但有时都是这样)。
fb的HTML内容
<a href='javascript:void(0);' id='facebook'><img src='fblogimage'></a>
$("#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中无效(弹出窗口阻止)
请帮忙解决。
答案 0 :(得分:0)
我在多个浏览器中遇到此问题,而不仅仅是Chrome。事实证明,您必须通过点击按钮来调用登录弹出窗口。
这里引用了the documentation(强调补充):
如此功能的参考文档中所述,它会产生一个 弹出窗口显示“登录”对话框,因此应该只是 由于某人点击HTML按钮而调用(以便 弹出窗口不被浏览器阻止。
由于使用<a href='javascript:void(0);'
代替<button>
或有效链接(如<a href="#">
或类似内容),您的代码可能会遇到问题。
希望这有助于某人!