【问题标题】:XD_Proxy popup won't close [closed]XD_Proxy 弹出窗口不会关闭 [关闭]
【发布时间】:2012-02-13 15:11:06
【问题描述】:

这真的很烦人。我正在使用 JS SDK 连接到 Facebook。昨天我尝试了一切,一切正常。但是今天早上,当我点击登录按钮时,在我登录 Facebook 后,这个弹窗出现了,并且不会自行关闭。

https://s-static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb=f14545c19c&origin=http%3A%2F%2Flocalhost%2Ff4dcd5fdc&relation=opener&transport=postmessage&frame=f7e77d918&access_token=...&expires_in=6642&signed_request=...&base_domain=localhost

我的脚本是(为了清楚起见,被精简了):

FB.login(function(response) {
    alert(response.authResponse);
}, {scope: 'email,user_birthday,publish_stream'});

脚本运行(它会提醒响应),但弹出窗口仍然不会关闭。是因为最近的 Facebook 更新吗?虽然有点奇怪,昨天它起作用了,现在它不起作用了。更不用说我朋友的项目也使用 JS SDK 似乎工作正常。

我尝试过使用其他应用程序 ID、使用 channelURL 等,但仍然没有运气。最后的办法是使用带有 window.open() 的 PHP SDK 来弹出窗口,但如果有的话,我仍然更喜欢 JS 解决方案。

感谢您的回答

【问题讨论】:

  • 您对此感到高兴吗?我已经开始经历同样的事情。想不通。
  • 是的,我有!我将在下面提供我的解决方案,虽然它不是开创性的!
  • 看到同样的问题,除了 transport=flash。 channelURL 似乎不起作用。可能与此有关:hustoknow.blogspot.com/2011/06/…

标签: javascript facebook


【解决方案1】:

显然,我的朋友添加了另一行,我不知道它是做什么用的,所以我只是简单地注释掉不必要的行以使其正常工作。

  window.fbAsyncInit = function() {
    FB.init({appId: '<?php echo $this->config->item("facebook_app_id");?>', status: true, cookie: true, xfbml: true, oauth: true});
    //FB.UIServer.setLoadedNode = function (a, b){FB.UIServer._loadedNodes[a.id] = b; }
  };  

几天前它运行良好,所以我猜 Facebook 一直在后台更新。

【讨论】:

  • 啊哈。该行是一个 hack,它解决了 IE8 和 Javascript 登录的先前问题。我们也有这个,所以我也会发表评论,让你知道我的进展情况。
猜你喜欢
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多