我的.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字段)?
答案 0 :(得分:0)
#fbinfo
是input
元素,因此,您无法在其中设置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">