Chrome localstorage在Mac OS中不起作用

时间:2013-08-28 06:13:08

标签: javascript macos google-chrome-extension local-storage

我有一个扩展,需要来自localstorage的一些数据。 算法: 如果未找到(或为空)数据则alert();并返回;

var storage = chrome.storage.local;
storage.get('data', function(items) 
{ 
    if (!items.data.apiKey) { alert('Api key not set!'); return;} // not working
    //nextstuff that is not working if there is no items.data.apiKey
}

此代码在Windows上运行良好。在Mac OS中,它不会提醒我,如果它不返回数据则会更快返回。

1 个答案:

答案 0 :(得分:0)

我怀疑你的代码不会因OS X而失败。

真正的问题是你正在阅读items.data的财产。通过这样做,您假设items.data是非空值(不是nullundefined)。这种假设是错误的。

要解决此问题,请添加额外的支票:

chrome.storage.local.get('data', function(items) { 
    if (!items.data || !items.data.apiKey) {
        alert('Api key not set!');
        return;
    }
});

如果您愿意,还可以设置默认值,如下所示:

chrome.storage.local.get({data: 'default value'}, function(items) { 
    /* ... */
});