【问题标题】:Facebook infinite loop, setTimeout not helping =(Facebook 无限循环,setTimeout 无济于事 =(
【发布时间】:2012-04-02 11:11:31
【问题描述】:
使用 ie 和 firefox 时,我的 Facebook 上有一个循环 (Facebook Javascript SDK window location reload not working on Firefox)
因为:
FB.Event.suscribe('auth.login',function(response){
location.reload(true);
});
我试过了:
FB.Event.suscribe('auth.login',function(response){
window.setTimeout('location.reload(true)',0);
});
但它一直在循环。
附加信息:我只使用 html、javascript 和 jquery 不使用 php、asp、aspx、ruby,仅此而已。
【问题讨论】:
标签:
javascript
facebook
oauth
reload
infinite-loop
【解决方案1】:
改为:
FB.Event.suscribe('auth.login',function(response){
window.setTimeout(function () {
location.reload(true);
},0);
});
【解决方案2】:
如果用户已连接,则不应调用 reload
FB.getLoginStatus(function(response) {
var reload = function(){location.reload(true);};
if(response.status !== 'connected'){
FB.Event.subcribe('auth.login',function(response){
setTimeout(reload,0);
});
}else {
FB.Event.subcribe('auth.logout',function(response){
setTimeout(reload,0);
});
}
});