0

我不确定我是否必须询问 jQuery 或 Facebook,但是:我当前的网站Social Promo允许用户邀请他们的朋友加入以进行赞助。所以我使用下面的代码,它工作正常......除了在 IE 上。

function load_friends() {
    if($('#fb_friendbox').is(':empty')) {
        FB.api('/me/friends', function(response) {
            $.each(response.data, function(index,friend) {
                var nextFriend = '<div class="fb_friend" onclick="resend_invite('+friend.id+');return false;"><div class="fb_picture"><img src="https://graph.facebook.com/'+ friend.id +'/picture" /></div><div class="fb_name"><span>'+ friend.name +'</span></div></div>';
                $('#fb_friendbox').append(nextFriend);
            });
            $('.ajax-load').css('display','none');
        });
    }
}

IE 的 js 控制台告诉我(来自法语)Can't get value of 'length', object is null or undefined。因此,由于我不经常使用 IE(据我所知,我不能使用 console.log 或调试),我只是尝试了一些 alert() 并查看:

  • response是一个对象
  • response.data未定义(其他浏览器,如 Chrome,返回对象列表)
  • 代码流很好,直到该$.each

所以最后IE不加载当前用户的好友列表,也不知道是什么。我是否错过了 IE 需要的此功能中的某些内容,但其他浏览器却没有?

4

2 回答 2

0

敢打赌response.error 已设置,并告诉您您没有使用有效的访问令牌。

而且,我也很确定,这又源于古老的第三方 cookie问题……</p>

于 2012-07-05T15:22:59.620 回答
0

安德……关门了。我的问题解决了,事实上它从来不存在。我正在使用 Linux,所以对于 IE 版本,我借了一位同事的 Windows 电脑,最后发现(通过尝试另一位同事的电脑,一切正常)第一个以我不理解的方式阻止了每个 Facebook 请求,也不这是什么行为。那是存在的data并且error不存在的。

于 2012-07-06T07:27:36.303 回答