<分区>
我是 WebExtensions 和 JavaScript 的新手。我正在尝试编写一个带有 pageAction
按钮的小扩展程序,该按钮仅在单击时将当前 URL 保存到本地存储(即一些非常简单的“收藏夹”功能)。但是,我在使用 chrome.storage.local.set()
和 .get()
时遇到了问题。我一直在查看 this question 中的代码和 this question尝试将其重新用于我的目的,但惨遭失败。这是我目前拥有的。
saveURL()
函数应该在本地存储中加载数组,用新的 URL 更新它,然后将它保存回本地存储(目前,我只有一个无用的字符串我正在尝试推送到那个数组)。
async function saveURL() {
console.log("Save URL called.");
var urls = await loadURLs();
console.log(urls);
urls.push("a-new-url")
console.log(urls);
chrome.storage.local.set({'pearsurls': urls});
urls = await loadURLs();
console.log(urls);
return true;
}
loadURLs()
函数应该从本地存储中检索内容。我在 storage.local.get()
中使用默认值来在第一次使用时初始化数组。
function loadURLs(){
var pearsurls = []
console.log("Loading all saved URLs");
chrome.storage.local.get({pearsurls: []}, function (result) {
pearsurls = result.pearsurls;
console.log(pearsurls)
});
console.log(pearsurls)
return pearsurls;
}
控制台中的输出给我:
Save page save.js:52:3
Save URL called. save.js:5:3
Loading all saved URLs save.js:38:3
Array [ ] save.js:43:3
Array [ ] save.js:7:3
Array [ "a-new-url" ] save.js:9:3
Loading all saved URLs save.js:38:3
Array [ ] save.js:43:3
Array [ ]
即我的 loadURLs()
函数似乎没有做任何事情...我做错了什么?