我正在使用all.js进行Facebook实施。我在注册页面上使用了facebook按钮。通过登录我获取Facebook用户的用户名和电子邮件到注册页面上的字段。 它在Chrome,Safari和Firefox上运行良好,但它在IE8上出错。
错误发生在all.js第22行
{FB.UIServer._loadedNodes[a.id]=b;if(a.params)b.fbCallID=a.id;
如果有人知道为什么会出现这个问题,请帮助我。
由于 Udham
答案 0 :(得分:10)
试一试。它对我有用,可能对某人有帮助。
FB.UIServer.setLoadedNode = function (a, b){FB.UIServer._loadedNodes[a.id] = b; }
理想情况下,附加调试器并查看哪种方法分解并破解它。
答案 1 :(得分:7)
这是一个已知错误:http://bugs.developers.facebook.net/show_bug.cgi?id=19042 它设置为CLOSED FIXED,但许多用户仍然在评论区域报告错误。
评论#19建议进行黑客攻击:
FB.init({
....
....
});
FB.UIServer.setActiveNode = function(a,b){FB.UIServer._active[a.id]=b;} // IE hack to correct FB bug
它适用于某些人。我必须说这对我不起作用,但我认为值得一提。
答案 2 :(得分:1)
我刚遇到这个(或类似的问题)。我的所有.js第22行,char 3160,在document.documentElement.style.display='none';
之后,这是一个权限被拒绝错误。
在我的情况下,这是因为channelUrl使用的是不同的协议(https)而不是我的应用程序的iframe正在(http)下加载。我试过了//mydomain.com/channel.html
,但这给了我一个不同的错误。我通过在生成html时为channelUrl动态选择http / https来解决它。
答案 3 :(得分:1)
我找到了解决方案。已经在https://stackoverflow.com/a/8504794/287604发布了答案,但对于绝望的快速修复:
FB.init({
appId: 'xxxxx',
appSecret: 'xxxxxxxxx',
status: true
cookie: true
});
// this code solves the issue
FB.UIServer.setLoadedNode = function (a, b) {
FB.UIServer._loadedNodes[a.id] = b;
};
答案 4 :(得分:1)
我仍然在努力解决这个问题,但我刚才注意到的一个奇怪的工作是,如果在将 show-faces 属性设置为“true”时使用fb:login-button,它会突然正常工作。我尝试了两个并排fb:登录按钮,并且show faces设置为false或不包含的按钮每次都会传回错误。