fancybox内にログインフォームを読み込んでいます。ユーザーが2つのブラウザタブでサイトを開いていて、最初のタブでログインし、次に2番目のタブでログインリンクをクリックした場合、ページがユーザーにリダイレクトされるため、2番目のタブでファンシーボックスを開かないようにします。プロファイルであり、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;
}
});
}
},
これは、おそらくonStart関数のスコープではなく、AJAXコールバック内でfalseを返すため、認証されたユーザーに対してfancyboxが開くのを妨げることはありません。そのAJAXコールバック内からfancyboxをキャンセルしたり、onStart関数のスコープに何かを渡したりする方法はありますか?ありがとうございました