未调用Facebook登录回调,弹出窗口不会在Win8上的IE10中关闭



对于我的Facebook应用程序,登录到Facebook并授予权限后,Facebook.login对话框不会关闭。我尝试了一个带有间隔和FB.getLoginStatus的变通方法,但即使我已授予权限,并且应用程序出现在我的帐户设置中,该响应也只返回"not_authorized"。

我的页面上有以下标签:

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

元标签似乎不是类似问题中描述的问题

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

通道文件包含与上面相同的脚本标记。我改变了很多其他参数:oauth、xfbml、cookie、status和无摩擦请求(我在其他地方见过)

此问题仅发生在带有IE10 的Win8上

提前感谢!

我解决了这个问题。您需要异步初始化FB-jsdk:

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)); 

无论出于何种原因,当你这样做时,FB.login的对话框会按预期关闭,一切正常=)

编辑:问题是必须在IE中更改的安全属性:
Internet属性->安全->底部的复选框"安全模式"必须启用,然后它将与同步和异步FB.init一起工作
(我是德国人,所以我不知道英文的房地产名称sry)

最新更新