-1

我尝试了一个简单的 if 语句来避免在每次页面加载时都运行下面的代码,但是第二部分dropbox_authStatus === 1没有触发虽然alert("authStatus: "+dropbox_authStatus);告诉我 dropbox_authStatus 是 1。我的代码有什么问题?

$('document').ready(function() {

dropbox_authStatus = localStorage.getItem('dropbox_authstatus');
alert("authstatus: "+dropbox_authStatus);

if(!dropbox_authStatus) {
    localStorage.setItem('dropbox_authstatus',1);   
    //initialization
    var client = new Dropbox.Client({
        key: "hm4c58qp6rpysot", secret: "w7cdx6o8p2hyubj"
    });
    alert("initialized");
    //preset driver to the dropbox page
    client.authDriver(new Dropbox.Drivers.Redirect());
    //authentication
    client.authenticate(function(error, client) {
        if (error) {
            return showError(error);  // Something went wrong.
        }
    });
} else if (dropbox_authStatus === 1) {
    localStorage.setItem('dropbox_authstatus',2);   
    //initialization
    var client = new Dropbox.Client({
        key: "hm4c58qp6rpysot", secret: "w7cdx6o8p2hyubj"
    });
    alert("continued");
    //preset driver to the dropbox page
    client.authDriver(new Dropbox.Drivers.Redirect());
    //authentication
    client.authenticate(function(error, client) {
        if (error) {
            return showError(error);  // Something went wrong.
        }
        client.getUserInfo(function(error, userInfo) {
            if (error) {
                return showError(error);  // Something went wrong.
            }

            alert("hello: "+userInfo.name);

        });
    });
    //Save Dropbox credentials
    localStorage.setItem('dropbox_auth', JSON.stringify(client.credentials()));
    alert("credentials saved:"+JSON.stringify(client.credentials()));
}
});

提前致谢!if-statements里面的代码主要属于github上托管的dropbox.js库:https ://github.com/dropbox/dropbox-js/blob/master/doc/getting_started.md

4

2 回答 2

0

答案来自对原始问题的评论

我只是在猜测,但如果日志看起来正确,但不满足条件,则可能dropbox_authStatus是字符串而不是数字。

于 2012-09-08T11:02:51.117 回答
0

最新版本的 dropbox.js 支持interactive: false该方法的选项client.authenticate()。您可以使用此公共 API 来实现相同的目标,并且您的代码不会因库更新而中断。

代码片段:https ://github.com/dropbox/dropbox-js/blob/master/doc/snippets.md#sign-into-dropbox-button

验证文档:http ://coffeedoc.info/github/dropbox/dropbox-js/master/classes/Dropbox/Client.html#authenticate-instance

于 2013-02-18T10:15:03.263 回答