javascript - FB.login() 调用弹出窗口被 Google Chrome 阻止

标签 javascript facebook authentication popup settimeout

极其相关:

http://code.google.com/p/facebook-actionscript-api/issues/detail?id=256

具体:

I've discovered that popups are blocked unless triggered by a user action, e.g. a button click. So the solution to this problem is to only call Facebook.login() from a MouseEvent.CLICK handler.


但是在我的网站上,这就是我所做的,并且弹出窗口仍然被阻止:

$('#fb-login-button').click(function () {
    FB.logout();
    setTimeout(function() {
        FB.login();
    }, 2000);
});

是否是因为 FB.login() 调用是由 setTimeout() 函数调用的,而不是直接在点击处理程序中调用?

有什么建议吗?

最佳答案

是的,浏览器由于 setTimeout 调用而阻止了您的弹出窗口。

如果删除 setTimeout,它不会被阻止。

很好的解释在这里: https://stackoverflow.com/a/7060302/384442

关于javascript - FB.login() 调用弹出窗口被 Google Chrome 阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766126/

相关文章:

javascript - 单击按钮时使用 $.Ajax 获取、更新和将 JSON 放回服务器

javascript - 如何在 jquery 中激活当前选项

javascript - 当 Javascript 更改输入值时更新可观察对象

java - Facebook 应用程序的按钮链接

java - 如何使用 facebook sdk 版本 3.22.0 从 Facebook 登录获取 emailid

ios - 以明文形式发送用户名/密码是否安全?

android - 在 iOS 中使用 gmail API 验证用户实际上是大学生的最佳方法?

iphone - 保护移动设备和 Web 服务之间连接的协议(protocol)?

javascript - jQuery 链接自定义函数

如果安装了 Facebook 应用程序,iOS Facebook 授权失败