运行storage.set时未检查runtime.lastError:超过QUOTA_BYTES_PER_ITEM配额

问题描述 投票:0回答:2

我在background.html 页面中遇到此异常。我不知道这个例外说什么。谁能解释一下这个异常,并告诉我如何解决这个异常。

异常详情为

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

谢谢你。

google-chrome google-chrome-extension google-chrome-devtools google-chrome-app
2个回答
59
投票

当您使用

chrome.storage.sync.set
存储单个项目大于 8,192 (
QUOTA_BYTES_PER_ITEM
) 字节的数据时,会发生此错误。

请参阅存储区域以供参考。

要存储大量数据,请使用

storage.local
,其总计限制为 10MB(Chrome 113 及更早版本中为 5,242,880
QUOTA_BYTES
),并且可以通过请求 manifest.json 中的“无限存储”
权限
来增加容量.


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

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

4
投票

正如 wOxxOm 在上面的评论中概述的那样,答案包含在 chrome.storage 文档中。

此外,实施错误处理并检查

runtime.lastError
始终是一个好习惯。如果一切正常,它将是未定义的。如果有问题,就会非空,
chrome.runtime.lastError.message
会解释哪里出了问题。

Chrome 添加了检查

chrome.runtime.lastError
是否已实际检查(评估)。如果不是,它认为这是一个未处理的异常,并抛出此错误。

© www.soinside.com 2019 - 2024. All rights reserved.