0

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関数のスコープに何かを渡したりする方法はありますか?ありがとうございました

4

0 に答える 0