0

自分のページにFacebookでログインするためのリンクがあり、onclickの動作を操作したいと思います。現在、最後にreturn falseを追加して、デフォルトのアクションを実行しないように変更しました。

$('#login').on('click', function(e) {
    FB.login(function(response) {
        //window.easyUserData.login = response;
        if (response.authResponse) {
            console.log('authorised');
            return true;
        } else {
            // cancelled
        }
    });
    return false;
});

何が起こっていたのかというと、FB.loginを呼び出してダイアログを開いた直後に、私が望んでいたものではなく、ページがリダイレクトされるということでした。私が探しているのは、returntrueを置いたリンクのデフォルトのアクションを実行することです。return trueビットは、そこに到達するまでにreturn falseがすでに処理されているため、機能しません。これを行う方法に関するヒントはありますか?

リンクにはhref="#/ home"があり、ルーティングを処理するためにbackbone.jsを使用しています。

4

1 に答える 1

1

ログイン機能は非同期であるため、javascriptリダイレクトを使用する必要があります。

$('#login').on('click', function(e) {
    var href=this.href;
    FB.login(function(response) {
        //window.easyUserData.login = response;
        if (response.authResponse) {
            console.log('authorised');
            /* redirect here*/
           window.location=href;
        } else {
            // cancelled
        }
    });
    return false;
});
于 2013-01-01T23:07:26.103 に答える