对于我的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)