将Facebook信息传递给HTML隐藏输入字段

时间:2011-06-22 08:26:06

标签: facebook hidden-field

我的.aspx页面中有以下代码。

<input type="hidden" id="fbinfo" name="fbinfo" value="" runat="server" />
<script src="Scripts/jquery.min.js"></script>

<div id="fb-root"></div>
<script src="Scripts/all.js"></script>   

<script>
FB.init({ 
    appId: 'thisIsMyAppId', 
    status: true, 
    cookie: true, 
    xfbml: true 
});

FB.getLoginStatus(handleSessionResponse); 

function handleSessionResponse(response) {
    if (!response.session) {
        clearDisplay();
        return;
    } 

    FB.api({
        method: 'fql.query',
        query: 'SELECT uid, first_name, last_name, FROM user WHERE uid=' + FB.getSession().uid
        },

        function(response) { 
            var user = response[0]; 
            var userInfo = document.getElementById('fbinfo'); 
            $('#fbinfo').html('user id is:' + user.uid);
        }
    );
}

当我运行它时,VS IDE会抛出一条错误消息

  

htmlfile:对方法或属性访问的意外调用。

这突出了 jquery.min.js

中代码的这一部分
{if(this.nodeType==1){this.appendChild(E)}

问题是如何将查询的fql中的值传递给HTML输入隐藏类型控件或asp:control(如Label或Hidden字段)?

2 个答案:

答案 0 :(得分:0)

#fbinfoinput元素,因此,您无法在其中设置html(),而应使用val()

像这样:

$('#fbinfo').val('user id is:' + user.uid);

有关详细信息,请查看val() documentation

答案 1 :(得分:0)

将Facebook名称空间添加到HTML标记:

xmlns:fb="http://www.facebook.com/2008/fbml"

像:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">