如何检查一个变量是否设置在铬存储
How to check if a variable is set on chrome storage
我有一个小片段与LocalStorage工作,但我不能使它在Chrome存储方案上工作。
当我的应用程序启动时,我检查一个变量在localStorage
var bookNarration=parseInt(localStorage.getItem("narration"));
如果该变量是未定义的,这意味着我的应用程序是第一次打开,我在使用"default"声明的开关中处理bookLanguage。
switch(window.bookNarration)
{
case 2:
window.narrationShift = window.spanishShift;
break;
case 3:
window.narrationShift = window.frenchShift;
break;
case 10:
window.narrationShift = window.neutralShift;
break;
default:
window.narrationShift = 0; }
为了使它与Chrome存储工作,我改变我的代码如下:
var bookNarration=parseInt(chrome.storage.local.get("narration"));
但是我马上得到这个错误:
表单get(string)的调用与定义get(可选字符串或数组或对象键,函数回调)不匹配
我已经找了好几个小时试图找到一个解决方案,但我不能使它工作。我想我只需要检查值是否已经定义,所以如果它不是,我可以使用set()方法来存储我的默认值。
函数期望一个回调:
chrome.storage.local.get("narration", function(data)
{
if(chrome.runtime.lastError)
{
/* error */
return;
}
var bookNarration = parseInt(data.narration);
switch(bookNarration)
{
/* ... */
};
});
现在没有必要使用catch(意思是我不知道从接受的答案到现在是否发生了变化)。
如果项目不存在,你可以传入你想要的项目和默认值
chrome.storage.local.get({narration: "", num: 0, books: []}, function(data)
{
var bookNarration = parseInt(data.narration);
switch(bookNarration)
{
var numBooks= data.books.length
/* ... */
};
});
相关文章:
- 这样链接时是否可以设置转换
- 是否有任何设置阻止JavaScript在系统上工作
- 是否可以在调用时动态设置Jquery Accordion的活动面板
- 是否可以使用flexbox显示模型设置元素的滚动位置
- 如何检查日期选择器和时间选择器元素是否使用JQuery/Javascript设置
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 检查是否已设置GET变量
- 是否可以在网页上用另一种字体设置jqmath-display的样式
- 是否可以在reactjs中设置多个状态变量
- Javascript-检查是否设置了cookie
- Javascript 测试是否设置了变量
- 如何检测 javascript 文件是否被 IE11 安全设置阻止
- Javascript:是否可以在2D画布中为不同的文本设置不同的字体大小
- 我们是否需要设置超时进行短轮询
- 是否可以像在$routeProvider中一样在 Angular AMD 中设置页面标题
- 检测价格是否高于或低于200.00,然后设置(此)表格行的样式
- 是否可以设置柔盒插入、移除和项目位置的动画
- 是否可以在Internet Explorer 11中使用JavaScript设置选择元素的大小属性
- Symfony sfValidators:动态设置是否需要值
- 如何检查评级设置是否由 SharePoint 2010 中的 Javascript 启用