我正在更新我几个月前写的扩展名,当我完成时,我意识到loader.js
(每次访问特定页面时加载的文件)中的本地存储将返回:
Error: "An unexpected error occurred."
这是我尝试从本地存储加载信息的部分:
chrome.storage.local.get('setting-one', result => {
if (chrome.runtime.lastError) {
throw new Error(chrome.runtime.lastError); // error is thrown
...
过去该方法没有问题,但现在没有。 Firefox就是这种情况。在Chrome上,扩展程序也不起作用,也不会从loader.js
返回任何错误。我不确定API是否已更改,或者是否引入了一些有关访问本地存储的新更改。我一直在网上寻找解决方案,但是这个问题没有解决。
在扩展名页面上,我可以毫无问题地设置并获取存储中的所有信息。
答案 0 :(得分:1)
似乎您的问题已解决,但是Firefox中有一个错误,我遇到过几次。尽管我今天无法根据您的情况复制它,但可能是您发生了什么事。我今天在与相同错误消息非常相似的情况下确实花了一些时间。
成功调用方法后,有时会在Firefox上看到错误Error: An unexpected error occurred
,
如果您还定义了catch方法以及打开并打开Pause on exceptions
和Pause on caught exceptions
今天,在我使用的方法的最后,有了这个:
return browser.storage.local.set(storedObject)
.then(() => console.log('Util_WebExt.saveToStorage(): '+valueName+' stored.'))
.catch(e => console.error('Util_WebExt.saveToStorage(): '+valueName+' | error: '+e));
我确实像您的情况一样在get()上尝试过,但未显示错误。 此外,它不会显示在storage.sync上,仅显示在storage.local
上在其他情况下,我在不同情况,不同方法下有相同的行为。记不清了,但是在stackoverflow上有一篇文章声称这是功能而非错误。我不知道如何。可能是被误解了。