如何从onStart中的AJAX回调中取消fancybox

时间:2012-07-30 21:11:45

标签: ajax fancybox onstart

我正在fancybox中加载登录表单。如果用户在两个浏览器选项卡中打开了站点,并在第一个选项卡中登录,然后单击第二个选项卡中的登录链接,我想避免在第二个选项卡中打开fancybox,因为该页面将重定向到用户配置文件,并不会在fancybox内部看起来很好。所以我在onStart设置中有一个AJAX回调来检查用户是否经过身份验证。如果用户已经过身份验证,我想取消fancybox并将父级指向另一个页面(例如用户个人资料)。

此处是我的onStart代码:

'onStart': function(opener) { 
   if ($(opener).attr('id') == 'login') {
     $.get('/hicommon/authenticated', function(data) { 
        if ('yes' == data) {
          console.log('this user must have already authenticated in another browser tab, SO I want to avoid opening the fancybox.');
          return false;
        } else {
          console.log('the user is not authenticated');
          return true;
        }
     }); 
   }
},

这并不妨碍fancybox为经过身份验证的用户打开,可能是因为我在AJAX回调中返回false,而不是在onStart函数的范围内。有没有什么方法可以从AJAX回调中取消fancybox,或者将某些内容传递给onStart函数的范围?谢谢

0 个答案:

没有答案