2

非常相关:

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

具体来说:

我发现除非由用户操作(例如按钮单击)触发,否则弹出窗口会被阻止。所以这个问题的解决方案是只从 MouseEvent.CLICK 处理程序调用 Facebook.login()。


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

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

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

有什么建议么?

4

1 回答 1

2

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

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

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

于 2012-10-07T04:37:20.557 回答