Я пытаюсь сохранить список объектов словаря в хром-хранилище. Но следующий код, похоже, не работает должным образом.chrome.storage не работает как ожидалось
Когда расширение загружается в первый раз и нет объекта goal
в хранилище, должен быть установлен объект runtime.lasterror
, и код в этой части должен быть выполнен. Но это не так.
Когда я раскомментирую строку chrome.storage.sync.set
и сохраняю объект, и в следующий раз, когда я вызову функцию, ожидающую сохранения списка, это не так. Он не дает никаких предупреждающих ящиков.
function isPgUrl(pg_url,gl_name) {
if(pg_url && gl_name) {
dic_url={
"name":gl_name,
"pg_url":pg_url
}
//chrome.storage.sync.set({"goal":[dic_url]});
chrome.storage.sync.get(["goal"], function(data) {
if(chrome.runtime.lastError) {
chrome.storage.sync.set({"goal":[dic_url]},function() {
alert("blah");
});
alert("here");
return;
}
var list=data.goal;
list.append(dic_url);
alert(list);
chrome.storage.sync.set({"goal":list},function() {
alert("lalala");
return;
});
});
}
}
Как и в сторону, не использовать 'сигнал()' для отладки - использовать 'console.log()' и посмотрите [в правильной консоли] (htt р: //stackoverflow.com/q/36107503/934239). – Xan
спасибо за подсказку @Xan. Я пробую код, данный вами. Я позволю тебе знать как можно скорее. –
Знайте, что я сделал опечатку, которую я только что исправил, - не добавлял параметр 'data' для обратного вызова' get() ' – Xan