Chrome本地存储;t在Mac OS中工作属性

Chrome localstorage doesn't work property in Mac OS

本文关键字:OS Mac 工作 属性 存储 Chrome      更新时间:2023-09-26

我有一个扩展,它需要来自本地存储的一些数据。算法:如果数据未找到(或为空),则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 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) { 
    /* ... */
});