javascript - 这个函数是如何自动执行的?

标签 javascript function execution

我有以下代码(这是 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/

相关文章:

javascript - 如何在 4 秒后使用 jquery 激活弹出窗口?

javascript - Select2 提交占位符值

javascript - 到达容器底部时 AJAX 加载

python-3.x - python : Unable to call function when in while loop

无法从函数返回 boolean 值

javascript - 在 fullPage 和 Vuejs 中绑定(bind)辅助功能

javascript - 在我的代码中出现一些异常