繁体   English   中英

Facebook javascript FB.ui请求挂起在IE11和Firefox上

[英]Facebook javascript FB.ui request hangs on IE11 and Firefox

我正在尝试使用facebook UI请求对话框来选择朋友。 这在safari和Chrome中运行得非常好,但在firefox和IE11(尚未测试的低版本)中,它会随着加载动画一直挂起。

function pickFriend(ev)
{
     FB.ui(
     {
          method: "apprequests",
          message: "Choose a friend.",
          max_recipients: 1,
          title:"Invite a friend"
     },sendMessage);
     ev.preventDefault();
}

$("#element").click(pickFriend);

然后我尝试直接在控制台中调用该函数,以确保它不是我的实现,这是问题,并且我得到了与加载动画挂起的相同结果。 然后我尝试了不同的显示选项,我可以在弹出模式下工作,但对我来说这不是很优雅,我更喜欢它在iframe模式下工作,就像在safari和chrome中一样。

还有其他人遇到过这个问题吗? 如果是这样的话有这个原因并且可以解决吗?

我认为这可能完全取决于Facebook的修复,如果我想保持浏览器兼容性,那么除了在弹出模式下运行之外别无选择。

在IE11(和节点)中,javascript引擎可能会在长时间操作中挂起。 建议的解决方法是使用“setImmediate”,因此对于您的示例:

function pickFriend(ev)
{
 ev.preventDefault();

 setImmediate(FB.ui
    , {
       method: "apprequests",
       message: "Choose a friend.",
       max_recipients: 1,
       title:"Invite a friend"
    }
    , sendMessage
 );
}

$("#element").click(pickFriend);

另外,请确保您的“sendMessage”变量的范围正确且未定义或为null。

句法

var immediateID = setImmediate(func, [param1, param2, ...]);
var immediateID = setImmediate(func);

参考: https//developer.mozilla.org/en-US/docs/Web/API/Window.setImmediate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM