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 打开对话框之后它会重定向页面,而不是我想要的。我正在寻找的是它执行我放置返回 true 的链接的默认操作。return true 位不起作用,因为当它到达那里时, return false 已经被处理了。关于如何做到这一点的任何提示?

该链接具有 href="#/home" 并且我正在使用主干.js 来处理路由。

4

1 回答 1

1

由于登录功能的异步性质,您必须使用 javscript 重定向:

$('#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 回答