我正在写一个Chrome扩展,其中我需要将数据保存在chrome.storage.local
中。但是,它只保存最后一条记录数据。你能解释我做错了什么吗?为什么chrome.storage.local只保存最后一条记录?
普通localStorage不好,因为重置Chrome浏览器中的设置后,localStorage为空。
chrome.runtime.onMessage.addListener(function (request) {
if (request.type === 'setInLocalStorage') {
var key = request.key;
//alert(key);
chrome.storage.local.set({key: request.data},function() {
alert('data was saved');
});
}
return true;
});
chrome.runtime.onMessage.addListener(function (request, sender, SendResponse) {
if (request.type === 'getFromStorage') {
chrome.storage.local.get(null, function (items) {
var allKeys = Object.keys(items);
if (allKeys.length != 0) {
for (var i = 0; i < allKeys.length; i++) {
alert(items[allKeys[i]]);
if (items[allKeys[i]] === request.value) {
SendResponse(true);
} else if (i === allKeys.length - 1) {
SendResponse(false);
}
}
} else {
SendResponse(false);
}
});
}
return true;
});
为什么你是否将消息发送到'get()'和'set()'storage.local'? 'storage.local'可以从后台上下文中运行的内容脚本和脚本中获得。应该没有必要传递信息。 – Makyen