Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查chrome存储器上是否设置了变量_Javascript_Google Chrome Extension_Local Storage_Chrome Web Store_Google Chrome Storage - Fatal编程技术网

Javascript 如何检查chrome存储器上是否设置了变量

Javascript 如何检查chrome存储器上是否设置了变量,javascript,google-chrome-extension,local-storage,chrome-web-store,google-chrome-storage,Javascript,Google Chrome Extension,Local Storage,Chrome Web Store,Google Chrome Storage,我有一个关于LocalStorage的小片段,但我还不能让它在Chrome存储方案上工作 当我的应用程序启动时,我检查localStorage中的一个变量 var bookNarration=parseInt(localStorage.getItem("narration")); 如果该变量未定义,则表示我的应用程序是第一次打开的,并且我使用“默认”声明在交换机中处理bookLanguage switch(window.bookNarration) { case 2:

我有一个关于LocalStorage的小片段,但我还不能让它在Chrome存储方案上工作

当我的应用程序启动时,我检查localStorage中的一个变量

var bookNarration=parseInt(localStorage.getItem("narration"));
如果该变量未定义,则表示我的应用程序是第一次打开的,并且我使用“默认”声明在交换机中处理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(字符串)的调用与定义get(可选字符串、数组或对象键、函数回调)不匹配

我已经寻找了好几个小时,试图找到一个解决办法,但我无法让它工作。我想我只需要检查值是否已定义,如果未定义,我可以使用set()方法存储默认值。

函数:


现在没有必要使用catch(也就是说,我不知道从接受答案到现在这一点是否发生了变化)

如果项目不存在,则可以传入所需的项目以及默认值

chrome.storage.local.get({narration: "", num: 0, books: []}, function(data)
{
    var bookNarration = parseInt(data.narration);

    switch(bookNarration)
    {
        var numBooks= data.books.length
        /* ... */
    };
});

在我的Chrome应用程序中,这个Chrome.runtime.lastError永远不会工作。我很惊讶,他们没有找到一个最聪明的方法来管理错误。使用LocalStorage
var students=JSON.parse(LocalStorage.getItem('studentsInfo')| |[];
chrome.storage.local.get({narration: "", num: 0, books: []}, function(data)
{
    var bookNarration = parseInt(data.narration);

    switch(bookNarration)
    {
        var numBooks= data.books.length
        /* ... */
    };
});