运行storage.set时未选中runtime.lastError:超出QUOTA_BYTES_PER_ITEM配额

时间:2015-10-08 12:24:13

标签: google-chrome google-chrome-extension google-chrome-devtools google-chrome-app

我在我的background.html页面中收到此异常。我不知道这个例外说的是什么。任何人都可以解释此异常,并告诉我如何解决此异常。

例外情况

Unchecked runtime.lastError while running storage.set: QUOTA_BYTES_PER_ITEM quota exceeded

谢谢。

2 个答案:

答案 0 :(得分:7)

  

当您使用 chrome.storage.sync.set ..为单个项目设置大于8,192字节的数据时会出现此错误,因为chrome.storage.sync.set允许 8,192 QUOTA_BYTES_PER_ITEM

使用chrome.storage.local.set ..设置数据而不是chrome.storage.sync.set。
由于 chrome.storage.local.set 可以包含 5242880:QUOTA_BYTES

参见 https://developer.chrome.com/extensions/storage

此外,如果仍想使用以下代码使用chrome.storage.sync.set,则可以获取警报:

chrome.storage.sync.set(function() {  
   var error = chrome.runtime.lastError;  
   if (error) {  
      alert(error);  
   }  
});  

答案 1 :(得分:1)

正如wOxxOm在上述评论中所述,答案在chrome.storage documentation中有所涉及。

此外,实现错误处理和检查runtime.lastError始终是一个好习惯。如果一切都好,那将是未定义的。如果有问题,它将是非空的,chrome.runtime.lastError.message将解释错误。

Chrome添加了检查,实际检查(评估)了chrome.runtime.lastError。如果没有,它认为这是一个未处理的异常,并抛出此错误。