我想获取facebook的api值并返回多个变量,以便我可以在我网站上的几个不同页面上使用它。
这就是我想要做的,但由于FB为async
,因此值会延迟。
如何在准备好后获得这些价值?
function getFBinfo(){
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
FB.Canvas.getPageInfo(
function(info) {
var myClientHeight = info.clientHeight;
var myClientWidth = info.clientWidth;
var myOffsetLeft = info.offsetLeft;
return {clientHeight:myClientHeight, clientWidth:myClientWidth, offsetLeft:myOffsetLeft };
}
);
}
});
}
然后访问某些页面上的变量,如:
en var n = getFBinfo();
console.log(n.clientHeight);
答案 0 :(得分:1)
由于facebook getPageInfo方法是异步方法,所以你可以传递回调而不是返回值,试试这个,
function getFBinfo(callback){
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
FB.Canvas.getPageInfo(
function(info) {
var myClientHeight = info.clientHeight;
var myClientWidth = info.clientWidth;
var myOffsetLeft = info.offsetLeft;
callback({clientHeight:myClientHeight, clientWidth:myClientWidth, offsetLeft:myOffsetLeft });
}
);
}
});
}
function mycallback(obj)
{
//You can handle output here
console.log(obj.clientHeight);
}
var n = getFBinfo(mycallback);