Chrome本地存储;t在Mac OS中工作属性
Chrome localstorage doesn't work property in Mac OS
我有一个扩展,它需要来自本地存储的一些数据。算法:如果数据未找到(或为空),则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
是一个非空值(而不是null
或undefined
)。这种假设是错误的。
要解决此问题,请添加一个额外的检查:
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) {
/* ... */
});
相关文章:
- Safari(Mac OS)上的jQuery平滑滚动问题
- console.log无法运行Mac OS X
- 从网页打开 Mac OS 应用程序
- Safari 7,Mac OS X:确定Java是否处于'不安全'模式
- bcrypt 未使用 npm (Mac OS X 10.9 - Node v0.10.22) 安装
- Mac OS X Yosemite 中的 Node.js dtrace 错误
- Mac os x 上的 Emacs + tern 插件“没有这样的文件或目录:tern”
- Safari (Mac OS X Lion) 将错误的纪元时间值返回给 position.timestamp 调用
- 通过 JavaScript 发送 Mac OS X 通知中心消息 - 10.10 Yosemite
- localhost:8080 未在 Mac OS X 上为 Node.js 加载
- Chrome本地存储;t在Mac OS中工作属性
- 在OS X Safari中捕捉Mac触控板缩放
- 禁用在Mac OS X上滚动Safari 9
- JavaScript HTTP GET请求适用于Firefox和iPad Safari,但不适用于Mac OS Safa
- 如何在nodejs中获取Mac OS计算机名称
- Aptana Studio 3 MAC OS在滚动JavaScript文件时间歇性死机
- 在Mac OS X上使用Selenium进行测试时,如何强制Firefox成为前台应用程序
- 在Mac OS上使用JavaScript控制台(JSC)管理文件系统对象
- 在Mac OS X (El Capitan)上安装angular-cli时,@angular-cli/ast-tools
- Chrome扩展,控制iTunes在Mac OS X