IE FB.login回调未运行且XD代理窗口保持打开状态

时间:2012-02-15 10:09:37

标签: javascript facebook

我无法让Facebook登录在IE中正常工作。问题是间歇性的。通常,当它调用FB.login时,弹出窗口会显示但仍保留在空白页,XD代理上,并且永远不会运行回调。有时,回调会运行,但窗口不会关闭 - 我想这可能是我第一次在重新启动机器后尝试它(关闭并打开浏览器没有相同的效果)。

您可以在www.runescape.com/上看到此问题,但在www.waroflegends.com/上使用相同的代码,登录似乎正常工作。

我已经搜索过并发现了很多关于XD代理主题的讨论,但没有一个解决方案似乎对我有用。我尝试添加一个自定义频道网址,并确保fb div是身体的第一个孩子无效。

2 个答案:

答案 0 :(得分:0)

我在IE9中遇到过同样的问题,它似乎源于升级到Flash Player 10.自从找到open bug at Facebook覆盖它以来,我一直没有尝试修复它。但是Henson发布了an answer,为我修复了它。在我的网站主人的JavaScript中,我删除了行

    FB.UIServer.setLoadedNode = function (a, b) {
     //HACK: http://bugs.developers.facebook.net/show_bug.cgi?id=20168
     FB.UIServer._loadedNodes[a.id] = b;
    };

现在它有效。 (N.B.我没有检查IE8是否发布这些行是为了克服回报。)如果不是这样,请查看FB.login dialog does not close on Google Chrome中建议的一些答案

答案 1 :(得分:0)

在FB.init之后立即尝试:

if($.browser.msie || $.browser.opera) { // yes, this is jQuery :)
  FB.XD._transport = 'fragment';
  FB.XD.Fragment._channelUrl = yourChannelUrl;
}