用facebook连接触发功能

时间:2009-02-26 18:12:50

标签: javascript jquery function triggers facebook

我正在尝试用facebook连接做相当简单的事,但没有运气。

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

我的代码是

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不会显示在预标签中,但是,在重新加载页面时,会显示用户(或不显示),因此不会直接从用户触发javascript函数。但刷新页面会启动正确的功能。

我在firebug中遇到的错误是

  

'fbLogout undefined'

,但很明显它是定义的。我定义它的位置是否重要? 目前所有的javascript / jquery都在脚本标签中。虽然我已经尝试将它移到页面中,但也没有运气。

1 个答案:

答案 0 :(得分:3)

原来我在想这个。 FB为你做了很多工作。 我在登录和注销事件上调用函数,但是使用FB.Connect.isUserConnected函数,FB会为您关注此事。

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

FB.Connect.isUserConnected(update_user_box, fbLogout);