我正在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函数的范围?谢谢