我正在花式框中加载登录表单。如果用户在两个浏览器选项卡中打开站点,并在第一个选项卡中登录,然后单击第二个选项卡中的登录链接,我想避免在第二个选项卡中打开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 回调中的幻想框,或者将某些内容传递给 onStart 函数的范围?谢谢