繁体   English   中英

JavaScript与Facebook JavaScript SDK的太多递归错误

[英]JavaScript Too much recursion error with facebook JavaScript SDK

我正在将FB.login请求发送到Facebook。 但是在javascript SDK仍在加载核心javascript资源时未定义FB。

所以,我检查了一下FB变量

function check_FB_variable(){
            if(typeof FB=='undefined'){
                check_FB_variable();
            }else{}
           }
           check_FB_variable();

但是这种方法给了我太多的递归错误。

所以,我把这段代码作为

function check_FB_variable(){
            if(typeof FB=='undefined'){
                setTimeout(check_FB_variable,600);
            }else{}
           }
           check_FB_variable();

但是在这种方法中,之前超时函数使调用函数向下移动,并给出未定义的错误FB.login。

请帮忙。

我已经使用类似的方法来检查JQMobi是否存在,我不知道为什么,但是我认为引发了异常,因为您每次都调用指向该函数的指针。

您应该尝试按以下间隔进行检查(未经测试):var facebookChecker = window.setInterval(fbCheck,200);

var fbCheck = function () {
    if (typeof FB != 'undefined' && facebookChecker != null) {
        window.clearInterval(facebookChecker);
        facebookChecker = null;

        // Whatever you want to do if facebook is loaded
        // Example: InitFBLogin();
    }
}

或者,您可以使用while语句(我使用的那条语句):

/*
*   This JQ Fix tries to attach Jquery to a variable to ensure it exists.
*   - Marvin Brouwer.
*/

var FixJQ = function () {
    var JQFIX = null;
    while (!JQFIX || JQFIX == null) {
        try {
            JQFIX = jQuery;
        } catch (nothing) {  jQuery =  $; };
    };
    JQFIX = null;
    return true;
};

if (FixJQ()) {
    FixJQ = null;
};

最后一个优点是您可以将其置于此步骤的下一个步骤,因为它将等待while循环完成。 老实说,我不知道哪一个更好/更快,但是我确信最底层的那个会工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM