javascript - 太多递归 - jquery - 为什么?

标签 javascript jquery facebook-login

我在这个问题上苦苦挣扎了几个小时,但没有成功的迹象。我正在尝试实现 facebook 登录。这是我的代码:

function fblogin() {
 FB.login(function(response) {
    if (response.authResponse) {
        var url = '/me?fields=name,email';
        FB.api(url, function(response) {
            $('#email_login').val(response.email);
            $('#pwd_login').val(response.name);
            $('#sess_id').val(response.id);
            if($('#evil_username').val()==""){
                $('#loginform').submit();
            }else{
             // doh you are bot
            }
        });
    } else {
        // cancelled
     }
  }, {scope:'email'});
 }

但是一旦我点击 facebook 登录按钮,我就会在控制台中看到太多递归。这是为什么?我在 stackoverflow 上读到了很多关于这个问题的问题,但找不到我的案例的线索。

我这里没有递归,但是发生了什么导致递归?

并且有来自

的调用
window.fbAsyncInit = function() {
FB.init({
  appId      : 'xxxxxxxxxxxxx', 
  channelUrl : '//www.mydomain.de/channel.html', 
  status     : true, 
  cookie     : true, 
  xfbml      : true  
});
// Additional init code here
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
      // connected
} else if (response.status === 'not_authorized') {
      // not_authorized
      fblogin();
} else {
      // not_logged_in
      fblogin();
}
});
};

也可以通过普通的LOGIN按钮触发fblogin()

最佳答案

我没有看到您的 onclick 代码在哪里,也没有看到调用 fblogin() 的操作,我假设问题出在调用 fblogin() 时。

 function fblogin(event) {
   event.stopPropagation();

向每个函数 fblogin(event) 调用添加一个事件参数,以便跨浏览器兼容。

当事件发生时,它会遍历到父元素,以便它们可以继承事件处理程序,在您的例子中为function fblogin()。当您停止传播 stopPropagation() 时,您会停止 DOM 遍历,并且如果设置了 stopPropagation,调用该函数的元素不会将处理程序传递给父级。这一切都意味着浏览器将停止循环遍历所有 DOM 元素并减少 jquery 的递归性。

关于javascript - 太多递归 - jquery - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17640040/

相关文章:

android - 如何在 Activity 之间处理 Facebook Android SDK v4.1 访问 token

javascript - Amazon S3 Node.js SDK 删除对象

javascript - 使用动态值计算

javascript - 事件监听器 DOMNodeInserted 被多次运行,为什么?

javascript - jQuery:淡入数据而不是警报?

jquery 1.8 包含不区分大小写 + 开头

javascript - 在 Chrome 和 Firefox 中显示图像

javascript - 尝试将一个文件夹返回到 index.html 时如何修复 "Error Loading Page"

ios - 使用 swfit 通过 UIWebview 登录 facebook 显示空白

reactjs - 呃!无法读取未定义的属性 'match' - react-facebook-login npm 包安装