2013-02-19 52 views
0

对于我的Facebook应用程序,登录Facebook并授予权限后,Facebook.login对话框不会关闭。我尝试了一个间隔和FB.getLoginStatus的解决方法,但即使我已授予权限并且该应用程序显示在我的帐户设置中,此响应也只会返回“not_authorized”。Facebook的登录回调没有被调用,弹出窗口不会在Win10的IE10中关闭

我有我的网页上以下标签:

<meta http-equiv="X-UA-Compatible" content="IE=9"> 
<script src="//connect.facebook.net/en_US/all.js"></script> 

the meta tag not seems to be the problem as described in an similar question

FB.init({ 
     appId: 'xxxxxxxxxxxxx', 
     status: false, 
     channelUrl: 'My_Channel_File.html' 
    }); 

通道文件包含相同的脚本标签如上。 其他参数我很多变化:OAuth的,XFBML,饼干,状态和frictionlessRequests(我见过别的地方)

这个问题只发生在Win8中使用IE10

提前

谢谢!

回答

0

我解决了这个问题。你需要给init FB-jssdk异步:当你做这样不论什么原因的FB.login的对话框关闭如期结束一切正常

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'xxxxxxxxxxxxxx', 
     status: true, 
     cookie: true, 
     xfbml: true 
    }); 
}; 

(function (d) { 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) { return; } 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
}(document)); 

=)

编辑: 问题是必须在IE中更改的安全属性:
Internet属性 - >安全 - >必须启用底部“安全模式”下方的复选框,然后才能使用同步以及一个异步的FB.init
(我是德国人我不知道英文地产名称是什么)