我尝试这样做:
<script>
FB.getLoginStatus(function(response) {
if (response.status==='connected') {
var fb_status="on";
} else {
var fb_status="off";
}
});
alert("ok"+fb_status);
</script>
如果我将警报置于功能内,如果我将此警报放在外面,则该警报可以正常工作
我认为这或多或少与php中的全局变量相同但在Javascript中没有多少经验
我只需要在示例中输入相同的函数来检测var中的结果但是在我作为示例的情况下,在函数外部,我尝试了很多东西但没有得到结果
关心并感谢社区的帮助
答案 0 :(得分:0)
FB.getLoginStatus是异步函数,所以当你尝试在fb_status
之外获取undefined
时,FB.getLoginStatus
因为{{1}}没有返回任何结果
答案 1 :(得分:0)
由于FB.getLoginStatus
调用是异步的,结果只会在以后发生,并且只与事件处理程序中的相关
e.g。
<script>
FB.getLoginStatus(function(response)
{
// This line gets called many millisconds later
console.log("When I have a status");
if (response.status==='connected')
{
var fb_status="on";
}
else
{
var fb_status="off";
}
alert("ok"+fb_status);
});
// This line executes long before the callback returns
console.log("After call");
</script>
查看控制台以查看事件顺序:
"After call"
"When I have a status"
您在评论中提到要在其他地方使用该值。问题在于时间,因为您想要的结果只会在以后发生。