[英]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.