2

我正在尝试使用 facebook connect 做应该相当简单的事情,但没有运气。

当用户登录时,我想显示用户详细信息(刷新而不重新加载页面),当用户注销时,我需要回到登录状态。

我的代码是

function update_user_box()
{
   jQuery('span#loggedin').html('<fb:profile-pic uid="loggedinuser" facebook-logo="true"></fb:profile-pic><fb:login-button size="small" onclick="fbLogout()" autologoutlink="true"></fb:login-button>');
   jQuery('span#fbLogin, ul#otherLogin').hide();
   jQuery('div#popForecast li.otherLogin, ul.showList li.otherLogin').remove();
   jQuery('span#logged').text('1');
   FB.XFBML.Host.parseDomTree();
}

function fbLogout()
{
   FB.Connect.logout();
   jQuery('span#fbLogin').show();
   jQuery('span#loggedin').empty();
   jQuery('span#logged').text('0');
}
FB.init('c0529b8c11709f2317ae643d854e3866', 'xd_receiver.htm');
FB.ensureInit(function(){
   FB.Connect.ifUserConnected(update_user_box);
});

我可以登录和注销用户,但没有其他任何变化。我什至无法从我的功能中触发警报。

出于某种原因,我使用的 html 不会显示在 pre 标记中,但是,在重新加载页面时,会显示用户(或不显示用户),因此它不是直接从 javascript 函数触发的。但是刷新页面会启动正确的功能。

我在萤火虫中遇到的错误是

'fbLogout 未定义'

,但显然它是定义的。我在哪里定义它重要吗?目前所有的 javascript/jquery 都在脚本标签的头部。尽管我尝试将其移到页面中,但也没有运气。

4

1 回答 1

3

原来我是在想这个。FB 为您做了很多工作。我在登录和注销事件中调用了这些函数,但是使用 FB.Connect.isUserConnected 函数,FB 会为您密切注意这一点。

我的代码完全相同,除了 1)我在 fb:login 按钮中不再有 onclick 事件 2)FB.Connect.isUserConnected 函数现在看起来像这样

FB.Connect.isUserConnected(update_user_box, fbLogout);
于 2009-02-28T00:25:51.473 回答