我有以下代码(这是 facebook API 的初始化), 我不明白为什么这个片段在加载时运行而没有在代码中的其他任何地方被调用!
有趣的是,当我删除 fbAsyncInit 函数
“wrapper”时,它的工作原理是一样的!
那么如何在不在其他任何地方调用 fbAsyncInit
的情况下调用 FB.init
呢?
window.fbAsyncInit = function() {
FB.init({appId: '00000000000000000', status: true, cookie: true, xfbml: true});
FB.getLoginStatus(function(response) {
if (response.session) {
console.log('User is logged in.');
FB.api("/me?fields=name,picture", handleMe);
}
else {
console.log('User is not logged in.');
window.location = "http://wall-et.com/index.php/test/login/";
}
});
};
最佳答案
为此,您需要在页面中包含来自 Facebook 的脚本(可能是 connect.facebook.net/en_US/all.js)。
脚本从 window.setTimeout(..., 0)
运行 window.fbAsyncInit
,导致您的代码在 Facebook 脚本完全加载后运行并初始化。
关于javascript - 这个函数是如何自动执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6302975/